Données Mobile Alerts (Lacrosse)

Partagez ici vos guides et explications

Données Mobile Alerts (Lacrosse)

Messagepar thrymartin » 21 Sep 2019 09:06

Bonjour,

Avec l'aide précieuse de merguez07 sans qui je n'aurai jamais pu avancer et qui a écrit un script universel qui devrait convenir à toutes les situations.
Le script a été corrigé (avec peine, ce sont mes premiers pas en php) pour tenir compte des noms de capteur contenant des caractères interdits en xml pour pouvoir utiliser les balises XPath, les éventuels commentaires qui perturbaient le code et complétés pour tenir compte, je pense de tous les capteurs compatibles Mobile Alerts.

Il se peut que votre cas soit particulier, dans ce cas, il suffit de nous donner votre ID pour compléter le code, mais il semble que l'ID de test Lacrosse comportait quasi tous les pièges !


NB: ça a l'air long comme ça, mais j'ai tenu à tout détailler, afin que ce soit accessible à tous; les moustachus pourront sauter des étapes ou aller directement au script (en fin de message) ;)

Pourquoi Lacrosse
Parce qu'en capteurs de température extérieure, en capteurs météo, on n'a guère le choix : Les capteurs Z-Wave ne sont pas conçus pour les températures basses et la seule réelle alternative, Oregon, oblige à avoir un RFXcom ou un RFPlayer, non seulement onéreux si c'est la seule utilisation, mais limité au 433Mz, qui est limité légalement en puissance (10mw contre ... 500mw en 868 !!!) et n'a donc pas une portée compatible avec l'utilisation en extérieur.
D'autre part, si le RFPlayer permet en théorie le 868, les capteurs Lacrosse en sont pas supportés.

Lacrosse a donc les qualités suivantes pour ces utilisations
- 868 Mhz (portée 100m en extérieur)
- conso de piles ridicule, même en basse température
- plage de température de -40°+60° (sauf le thermomètre de base du kit -30+60)
- prix bas (en gros, la moitié d'un capteur Z-Wave)
- précision (testé avec plusieurs capteurs de température côte à côte)
- Intervalle de mesure : 7 mn
- Nombreux capteurs, notamment sonde de température/hygromètre compatible basse températures (même congélateur), anémomètre (vitesse, rafale, direction), hygromètre, moniteur de qualité de l'air, piscine, station météo...

Pourquoi Mobile Alerts
Mobile Alerts est la passerelle internet des capteurs Lacrosse compatibles (vos capteurs si vous en avez déjà doivent comporter un barcode 3D) elle est vendue soit en kit minimal (MA10001) avec un capteur de température, soit en kit plus complets (station météo diverses), la passerelle avec enregistrement de données est inutile, Eedomus le fera pour vous.
A noter qu'en kit minimal, elle coute dans les 50€ AVEC un capteur de température !
Cette petite passerelle est ultra facile à configurer : brancher en rj45 sur la box internet, quand le voyant vert indique qu'elle est connectée, chargez l'application smartphone et scanner un (les) barcodes de vos capteurs, c'est tout. La configuration se borne à renommer si vous le désirez, vos capteurs.
Pour la suite... notez votre ID (trouvée dans les paramètres de l'appli smartphone) pour l'accès aux données, il ne sera ensuite plus nécessaire d'utiliser l'appli smartphone qui pourra être en sommeil dans la liste de vos applis // vous pouvez même éteindre le téléphone, mais ne désinstallez pas l'appli, par contre, vous pouvez installer un capteur sur d'autres tel (ID)

On arrive au cœur du problème :

Comment récupérer les données Mobile Alerts

Visualisation des données
Directement sur la page Web Mobile Alerts nommée "Vos Capteurs", ici avec une adresse comportant votre ID

Code : Tout sélectionner
https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=XXXXXXXXXX


Vous pouvez essayer avec l'ID de test "météo" du "Huppertzberg" : 999515350787 qui comporte aussi des données de sonde "aquatique", des températures négatives, des données anémométriques pluviométrique, etc. c'est presque complet et remplis de pièges pour la capture, et vous pouvez tester immédiatement que cela fonctionne.

Insertion d'un script dans la Box Eedomus
La première opération sera d'insérer un script dans la box, nommé lacross.php pour pouvoir utiliser le capteur HTTP-Capteur, en effet l'appel direct de l'URL de la page Mobile Alerts ne peut pas fonctionner, ne s'agissant pas d'une page XML, ce script va donc créer un tout pet1t XML compatible avec l'interrogation XPath des données qu'on veut récupérer.
Il a été demandé carrément un plugin, peut être un jour, mais cela reviendrait juste à insérer le code de ce script dans le plugin HTTP-Capteur, le seul intérêt donc est pour l'utilisateur de juste visualiser que la récupération des données Mobile Alerts est possible, mais pour ceux qui lisent ce mot, cela ne sert à rien de plus.

Le script (encore merci à merguez07 qui en a écrit 99%) se trouve en fin de message, il faudra le mettre dans un fichier texte (ISO-8859-1 ou ANSI), et le nommer lacross.php et le mettre dans votre Box; le didacticiel Eedomus ici et quelques indications succinctes :
pour le codage texte : même notepad le permet (enregistrer sous, codage)
pour accéder à la page de scrip : en LOCAL ! et APRES s'être connecté au moins une fois à l'interface LOCALE (pour entrer Login/Pass qui resteront dans un cookie pour l'accès au dossier des script)

Code : Tout sélectionner
https:// IP LOCALE de la box Eedomus /script


C'est possible de le faire en distant, via internet, des indications ici, sinon, attendez un autre didacticiel pour cette opération spécifique...

Le capteur "HTTP-Capteur"
Vous le trouverez dans Configuration/Ajouter ou supprimer un périphérique/Autre type de périphérique/Réseau
Faites "créer"

Configuration de base
Entrer comme d'hab, son nom personnalisé, son usage, la pièce, profitez en pour lui donner une icône personnalisée et on remplit les parties spécifiques :

type de données: en général nombre décimal, notez l'unité parmi °C, mm, km/h, %, ppm
ou texte pour les données de direction de vent

URL de la requête :

Code : Tout sélectionner
http://localhost/script/?exec=lacross.php&phoneid=[VAR1]


[VAR1]: Votre ID

Configuration de l'XPath
La, il va falloir mettre la main à la pâte, mais c'est assez simple, il va falloir entrer "Tester" pour se retrouver sur la page de test XPath Eedomus, la valeur XPath par défaut n'a aucune importance (c'est celle de l'url test de cette page).

Après avoir cliqué sur "Tester" (celui de la page de test cette fois-ci); vous allez avoir un
ERREUR: Valeur lue vide
puisque la valeur XPath est mauvaise, mais par contre, dans Utilisez le résultat XML, vous voyez le code généré par le script lacross.php
Il faut :
1 - repérer le capteur, il encadre les ensembles de valeurs de sondes, exemple :
(les sondes peuvent avoir le même nom mais ne se trouvent pas sous le même capteur ou groupe de capteurs comme une centrale par exemple)

Code : Tout sélectionner
<LACROSS>
<capteur1>
<sonde1>12.5</sonde1>
<sonde2>-0.5</sonde2>
</capteur1>
<capteur2>
<sonde1>22.5</sonde1>
</capteur2>
</LACROSS>


entrez dans la valeur XPath

Code : Tout sélectionner
//nom du capteur/


par exemple

Code : Tout sélectionner
//capteur1/


2 - puis repérer la valeur souhaitée sous ce capteur et indiquez son nom
exemple:

Code : Tout sélectionner
//capteur1/sonde1


Testez et normalement, vous aurez la valeur qui s'affiche, vous pouvez donc recopier le XPath dans la page de configuration du HTTP-Capteur en face de XPath

Procédez par copier coller, parce que les balises sont parfois alambiquées et remplies de _ (pour rendre compatible leur nom avec les exigences XML)

Par exemple, avec l'ID du Huppertzberg donné plus haut, la valeur de rafale (exprimé en km/h dans la case "unité"), se fera avec l'appel suivant :

Code : Tout sélectionner
//__anemometre_huppertzberg__482m_/rafale


Les fréquences de requête Lacrosse sont de 7 mn, on peut donc indiquer une valeur juste supérieure dans la configuration du capteur, mais il s'il est raisonnable d'indiquer 10' pour les rafales, 30' pour les températures ou 60' ou plus pour l'hygrométrie par exemple suffisent, afin de ne pas surcharger le travail de l'Eedomus.

Voila, il suffit de refaire l'opération pour toutes les valeurs souhaitées...

NB Une valeur de température extérieure sera bien sur disponible pour utiliser le thermostat virtuel Eedomus au cas ou vous l'auriez configuré avec un relevé de station météo avec un capteur du store.
Malheureusement, on ne peut pas avoir l'usage météo (un comble !) mais avec l'usage "Extérieur", cela fonctionne.

Voila le script (à nommer lacross.php):

Code : Tout sélectionner
<?

    // nom du script : lacross.php
    $phone_id    = getArg('phoneid');
    $url         = "https://measurements.mobile-alerts.eu/Home/SensorsOverview?phoneid=".$phone_id;
    $result      = httpQuery($url, 'GET');
    $result      = preg_replace("#<\!--((?:.|\n)*)-->#","",$result);
    $xml         = "<LACROSS>\n";   
   
    preg_match_all('/(?:(?:<h3>(?:\s*)<a href="(?:.*)">(.*)<\/a>(?:\s*)<\/h3>)|(?:<div class="sensor-component">(?:\s*)<h5>(.*)<\/h5>(?:\s*)<h4>(.*)<\/h4>(?:\s*)<\/div>))/', $result, $matches);

    if(!isset($matches[3])) {
        return;
    }
   
    $last_name = NULL;
   
    foreach($matches[3] as $k => $m) {
       
        if(($k != 0)&&($m == '')) {
            $xml .= "</" . $last_name . ">\n";
        }
       
        if($m == '') {
            $last_name = sdk_makeKey($matches[1][$k]);
       $last_name     = preg_replace("#^\d* *|\/|\(|\)#","_",$last_name);
            $xml .= "<" . $last_name . ">\n";
            continue;
        }
       
        $key = sdk_makeKey($matches[2][$k]);
       
        $o = array(" C","%"," mm"," km/h"," ppm","Nord- ","Sud- ","Est- ","Ouest- ");
        $r = array("","","","","","Nord-","Sud-","Est-","Ouest-");
       
        $xml .= "<" . $key . ">" . str_replace($o, $r, $m) . "</" . $key . ">\n";

    }
   
    if(count($matches[3]) > 0) {
        $xml .= "</" . $last_name . ">\n";
    }

    $xml .= "</LACROSS>";
    echo $xml;

    function sdk_makeKey($cle) {
        $o = array("@"," ","&#233;","&#232;","&#234;","&#235;","&#224;","&#225;","&#231;","&#250;");
        $r = array("_","_","e","e","e","e","a","a","c","u");
        return str_replace($o, $r, strtolower($cle));
    }
           
    ?>
Dernière édition par thrymartin le 22 Sep 2019 19:36, édité 1 fois.
Thierry
thrymartin
 
Messages : 179
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Données Mobile Alerts (Lacrosse)

Messagepar clarinette49 » 22 Sep 2019 09:41

Merci, c'est exactement ce que je recherche (voir autre post à ce sujet).
Je pense tu coup acheter la station météo avec le mobile alerte et compléter avec les capteurs had oc.
clarinette49
 
Messages : 147
Inscription : 21 Mai 2019
Localisation : Angers

Re: Données Mobile Alerts (Lacrosse)

Messagepar thrymartin » 22 Sep 2019 18:19

A tout hasard, je laisserai tomber les centrales 10006 et 10009, les previsions météos ne se basent que sur des évolutions de pression, c'est un jouet, et la pression n'est pas affichée (juste ses variations) et pas transmise a la passerelle (juste température et hygrométrie int et ext)
pour ça ya mieux (voir plus loin)

du coup pour démarrer, tu as
soit le kit passerelle avec pluviometre, température, hygrométrie, anemometre, c'est le 10050
du coup... t'as tout (pour les prix, cherche avec les différentes marques, ça s'appelle pas forcement Lacrosse, mais toujours mobile alerts et toujours la même reference commençant par MA pour... mobile alerts)
soit le kit mini avec passerelle et thermometre c'est le 10001 et ya pas d'hygrométrie, mais le thermometre (plage -30+60) est cadeau (jamais vu la passerelle vendue sans moins cher qu'avec !? on trouve le kit à 49 et des poussières) il servira plus tard dans le congélo si tu achetes un thermo hygrometre (qui lui aura une plage de -40+60) et tu complètes le reste au fur et à mesure

Pour le thermometre en extérieur, te faut un abri : TFA DOSTMANN incontournable et le mettre LOIN de l'habitation chauffée, pas dans un espace clos, et pas sur le toit, toujours loin d'un mur serait ce celui du jardin ou d'un abri de jardin qui peuvent rayonner... faut chercher, moi j'ai un carport completement ouvert et très haut (double pente), donc sous une poutre je suis a plus d'1.50 du dessous de toit, sinon j'aurai pris un arbre... mais pas avec un tronc de sequoia pour la raison de renvoi de rayonnement encore: les amateurs météos mettent souvent ça sur un piquet (c pas beau mais bon), un arbre raisonnable c'est un bon piquet non ? :-) faut chercher et tester les differents endroits...

Tu veux la pression = prend celle de la station météo la plus proche dans "meteo avancée", la pression c'est à échelle météo : grande échelle, tu n'aurais pas mieux avec un capteur qui en plus te faussera les données au soleil (la pression va diminuer), si le vent souffle (pareil !) etc.
quand aux prévisions, prefere celles des modeles meteo france ou américaines, bref, autre chose qu'une simple variation de pression des centrales jouets. Il ya dans le store

ne va rester que la luminosité... il ya en z-wave
le point de rosée se calcule mais en auras tu usage ? (c'est la température du point de condensation à une altitude, en fait à une pression donnée),

plus sympa est... le point de condensation qui lui s'exprime en pression : c'est en gros l'altitude du plafond nuageux, tout ça sont des données météos globales, à prendre sur une station pro, amha (meteo avancee) on peut pas tout faire de chez soi (t'as pas de ballon sondes etc hein )

EDIT : j'attend toujours comment télécharger la source du http-capteur, j'ai besoin d'un réel exemple et tant qu'à faire, qui me serve, pour éventuellement faire un plugin mobile alerts modifié (pour y insérer le code du sript), ça me servira aussi de base pour un calculateur de point de rosée (et pression de vapeur, humidité absolue donc point de condensation) avec les données de température et d'hygrométrie - on ne peut pas faire une simple opération mathématique, il faut l'aide d'une table de de pression de saturation de la vapeur d'eau qui sont des valeurs expérimentales plus sure qu'un calcul empirique)

amuse toi bien
Dernière édition par thrymartin le 23 Sep 2019 05:28, édité 1 fois.
Thierry
thrymartin
 
Messages : 179
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: Données Mobile Alerts (Lacrosse)

Messagepar clarinette49 » 22 Sep 2019 20:51

Merci, effectivement après coup je me suis dit aussi que la station météo était inutile...
Je vais analyser tout ça et partir sur un kit passerelle plus sonde à 50 balles et rajouter une sonde thermo hygro pour l'extérieur, l'autre ira dans le garage. Après je compléterai au fur et à mesure.
Encore merci pour tout ce boulot et à mergez.
clarinette49
 
Messages : 147
Inscription : 21 Mai 2019
Localisation : Angers


Retour vers Tutoriels

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité