Extraction données de sondes Mobile-Alerts/La Crosse

Je ne pense pas que la passerelle conserve un historique des données et à ma connaissance il n’existe de toutes façons pas de moyen de s’y connecter.

L’idéale serait de pouvoir se passer de cette passerelle en connectant directement les sondes à un récepteur mais aucun n’existe actuellement. Les sondes étant en 868 Mhz le rfxcom n’est pas compatible la seule possibilité serait le rfplayer mais il ne les supportes pas pour le moment.

Merci pour votre retour ,

en effet l’idéale serait d’enlever la passerelle :wink: et récupérer directement le signal

La société GCE qui a récemment repris la commercialisation du RFPlayer est ouverte aux suggestions d’évolution. J’ai suggéré comme d’autres le support des sondes La Crosse :

1 « J'aime »

Je m’auto-répond, tout est ok maintenant.
Merci à tous.

Excusez moi je n’avais pas vu votre message. On peut visualiser la valeur dans le dashboard si la l’équipement est la commande sont « Visibles »’ et sinon dans la configuration de la commande dans l’onglet « Informations ».

pour ceux que ça intéressent,
je me suis ajouté au script de laurent des boucles pour extraire l’heure et données par sondes avec les id à renseigner.

$stream = stream_context_create(Array("http" => Array("method" => "GET", "header"  => "User-agent: PHP",))); 
$html = file_get_contents("https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=xxxxx",false,$stream); 
//$scenario->setLog("html " .strlen($html));
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXpath($dom);

// ------------------------------------------------------------------------------------------------------------------------
$id = array(5756, 2112);
$label = array("heure",	"Pluie");
$scenario->setLog("Pluie");
foreach ($id as $cle => $val) {
    $n=$cle+3;
   	$value[$cle]=$xpath->query("/html/body/div[2]/div[4]/div/div/div[".$n."]/h4")[0]->childNodes[0]->nodeValue;
  	$value[$cle] = substr($value[$cle], 0, -2);
  	$scenario->setLog($id[$cle]." ".$label[$cle]."=".$value[$cle]);
    if ($value[$cle]!="---" && $value[$cle]!="OFL") cmd::byId($id[$cle])->event($value[$cle]);
};

// ------------------------------------------------------------------------------------------------------------------------
$id = array(5739, 2106, 2107);
$label = array("heure", "temp Terrasse", "hygro Terrasse");
$scenario->setLog("Terrasse");
foreach ($id as $cle => $val) {
    $n=$cle+3;
   	$value[$cle]=$xpath->query("/html/body/div[2]/div[5]/div/div/div[".$n."]/h4")[0]->childNodes[0]->nodeValue;
  	$value[$cle] = substr($value[$cle], 0, -1);
  	$scenario->setLog($id[$cle]." ".$label[$cle]."=".$value[$cle]);
    if ($value[$cle]!="---" && $value[$cle]!="OFL") cmd::byId($id[$cle])->event($value[$cle]);
};

Bonjour, @HermioneG; @laurent.da-col
Plus d’accès depuis hier 22:30 Local
Erreur 403 et vous ? Merci
image

Bonjour,

Ce matin ça ne fonctionnait pas, et sur l’appli mobile j’ai eu un message de mise à jour de l’appli.
Par contre à l’instant je viens de vérifier, ça refonctionne, j’ai bien la page « mes capteurs » et le script est OK. Et vous ?

Ok, Merci effectivement c’est reparti.
Je vais voir pour intercepter les messages qui vont sur Mobile Alertes, c’est quand même dommage de devoir passer par un site pour nos « propres » données !

1 « J'aime »

100 % d’accord avec toi, récupérer les données en local et bloquer l’envoie vers leurs serveurs.

pour info ma surveillance (15mn) ma remontée ça l’après midi du 23 et le matin du 24…
de nouveau planté temporairement ce matin du 26 à 6H30 !

D’accord pour récupérer les données en local mais ne bloquer l’envoi que sur option, car dans ce cas plus de suivi dans l’application MA du smartphone…

Je suis en train de regarder, pas si simple, il teste les liaisons sur les 3 serveurs .net .de et .com
Je vois qu’il font aussi une demande ?
On peut renvoyer sur leurs serveurs après interception , si effectivement on trouve la méthode d’envoie.
Je le fais déjà pour une station Météo (Bresser 5 in1), interception message vers « wunderground » que je récupère sur « Jeedom » puis renvoie sur « Wunderground » ensuite.

Si il y a des volontaires « costaux » pour tester de leurs côtés ! :thinking:

Bonjour,

La passerelle ne crypte pas les données lors de l’envoi à leur serveur ?

A vérifier évidemment , mais tu peux renvoyer tel que de toute façon, l’interception est assez compliqué du coup.
Il y a un programme chez eux pour modifier les adresses IP et le routeur, mais pas le serveur !
Je suis avec « Pihole » pour détourner intercepter le DNS
Info de la page de la Passerelle modifiée

Mais si la passerelle envoi des données cryptées je ne vois pas comment on peut les extraire pour les intégrer dans Jeedom.

L’idéale serait de pouvoir se passer de cette passerelle et de récupérer les infos par le rfplayer mais pour le moment il ne gère pas le protocole LaCrosse.

peut être avec un module passerelle 868 mhz / wifi 2.4 ghz / lora autre que rfplayer, mais il faudrait connaitre le protocole MA + gros boulot pour mettre en œuvre !

bizarre pour moi tout fonctionnait bien jusqu’au 25/06 et depuis plus rien. j’ai bien pensé au user agent mais je ne voyais pas comment faire…

MERCI LAURENT !

bon j’ai quand même un peu galéré a adapter ton code à ma config mais ca roule !

Bonjour à tous,

Voici ci-dessous un code un peu plus intelligent que mon code initial. Il permet de renseigner les différentes sondes à extraire dans une variable liste unique et prend en compte l’heure du relevé (la commande n’est mise à jour que si la mesure à moins de 15 minutes), ce qui permet à Jeedom de gérer les alertes communications.

$phoneid="PHONE ID";

$tabmodules = [
    ["Cave","/html/body/div[2]/div[1]/div/div/div[1]/h3/a","/html/body/div[2]/div[1]/div/div/div[3]/h4",[//Titre du capteur, Chemin xpath du titre, Chemin xpath de la date/heure du relevé
		["/html/body/div[2]/div[1]/div/div/div[4]/h4",3011],//Chemin xpath de la mesure, Id. de la commande
		["/html/body/div[2]/div[1]/div/div/div[6]/h4",3012]]],
    ["Piscine","/html/body/div[2]/div[5]/div/div/div[1]/h3/a","/html/body/div[2]/div[5]/div/div/div[3]/h4",[
		["/html/body/div[2]/div[5]/div/div/div[4]/h4",2996],
		["/html/body/div[2]/div[5]/div/div/div[6]/h4",2998]]],
    ["Piscine 2","/html/body/div[2]/div[6]/div/div/div[1]/h3/a","/html/body/div[2]/div[6]/div/div/div[3]/h4",[
		["/html/body/div[2]/div[6]/div/div/div[5]/h4",2934]]],
    ["Maison","/html/body/div[2]/div[4]/div/div/div[1]/h3/a","/html/body/div[2]/div[4]/div/div/div[3]/h4",[
		["/html/body/div[2]/div[4]/div/div/div[5]/h4",3003],
		["/html/body/div[2]/div[4]/div/div/div[6]/h4",3005],
		["/html/body/div[2]/div[4]/div/div/div[4]/h4",3015],
		["/html/body/div[2]/div[4]/div/div/div[7]/h4",3000]]],
    ["Etage","/html/body/div[2]/div[3]/div/div/div[1]/h3/a","/html/body/div[2]/div[3]/div/div/div[3]/h4",[
		["/html/body/div[2]/div[3]/div/div/div[4]/h4",3007]]]
];

$stream = stream_context_create(Array("http" => Array("method"  => "GET",
                                                      "header"  => "User-agent: PHP",
                                ))); 
$html = file_get_contents("https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=".$phoneid,false,$stream); 
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXpath($dom);

$now_timestamp=time();

foreach ($tabmodules as list($module_titre,$module_titre_xpath,$module_dateheure_xpath,$tabcapteurs)) {

  $module_timestamp=date_format(date_create_from_format("d/m/Y H:i:s",$xpath->query($module_dateheure_xpath)[0]->childNodes[0]->nodeValue),'U');
  
  if (( $xpath->query($module_titre_xpath)[0]->childNodes[0]->nodeValue == $module_titre ) && ($now_timestamp-$module_timestamp<900)) {
  
  	foreach ($tabcapteurs as list($capteur_xpath,$capteur_cmdid)) {
    
       	$value=$xpath->query($capteur_xpath)[0]->childNodes[0]->nodeValue;
    	if ($value!="---" && $value!="OFL") {

          cmd::byId($capteur_cmdid)->event($value);
          
          $scenario->setLog($module_titre." (".($now_timestamp-$module_timestamp).") "."->".$value);
          
        };
  	};
  
  };
  
};

Problème de connexion sur mobile alerts eu depuis le 2 janvier connexions très lentes ou bloquées !