Forum eedomus
https://forum.eedomus.com/

Données Mobile Alerts (Lacrosse)
https://forum.eedomus.com/viewtopic.php?f=58&t=8879
« Précédent  Page 2 sur 5  Suivant »
Auteur:  clarinette49 [ 13 Fév 2020 16:59 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Pour la température ça sort la bonne valeur mais n'est pas reconnue comme numérique dans eedomus (ça doit être la virgule qui pose problème. Si on met texte c'est bon par contre on a pas les unités.
Mon capteur de température fibaro affiche une valeur comme 18.1 alors que lacrosse donnera 18,1 La virgule n'est pas reconnue comme décimale dans eedomus.
Soit on laisse comme çà, soit il faut dans le script remplacer les virgules par un point...
Auteur:  thrymartin [ 14 Fév 2020 04:30 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Pour l'erreur affichée par eedomus, fais un test, tu verras que les valeurs de températures sont vides dans le xml, c'est pour ça que ce n'est pas reconnu comme numérique. Ca donne quelque chose du genre :

<temp></temp>

alors que l'hygro donne bien, par exemple

<hyg>64</hyg>

EDIT avec le nouveau script universel lacross.php (la remarque ci-dessus était avec malerts.php spécifique a une installation avec juste température et hygrométrie), ça sortait la valeur de température avec une virgule, le script a été corrigé depuis: quelque soit la présentation du séparateur décimal, virgule ou point, ce sera avec le point (compatible eedomus) que la valeur est récupérée.

Mais ce qui est sur, c'est que tu as raison, j'ai pu remettre la main sur mes docs de travail et j'ai retrouvé une source de la page mobile alerts et c'était bien le point qu'il y avait avant donc le fait qu'il y ai la virgule empêche de lire la donnée

la j'ai pas le temps, mais il suffit de remplacer la virgule par le point dans le script
EDIT : j'avais pas tout lu tes messages avant le dernier... héhé, oui tu avais la même conclusion

on va y arriver :-)

PS : Au fait, qu'est ce que tu avais corrigé dans le script que tu disais "vérolé" ? j'ai lu plus haut que merguez t'avait aidé à corriger, mais heu... c'était quoi ?
parce que jusqu'à avant hier, c'était bien celui la et parfaitement fonctionnel que j'utilisais...
ou zalors... j'avais pas publié le bon ? bon, j'ai du pain sur la planche, il faut que je récupère celui que j'ai balancé sur eedomus pour voir si c'est bien celui qui est posté en début de discussion...
et comme je suis en distant... c'est tout un cirque, va falloir que je me trouve du temps de libre, peut etre ce WE
Auteur:  clarinette49 [ 14 Fév 2020 07:42 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

En fait c'est en recopiant ton script que j'avais sûrement du faire une erreur et Merguez m'as envoyé un bon script...
Auteur:  thrymartin [ 15 Fév 2020 13:39 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

ce que j'avais rajouté au script de merguez, c'était pour ne pas avoir les erreurs générés par certains exemples d'ID trouvés sur le net qui rassemblaient pratiquement tous les capteurs (anémomètre avec les directions, etc.) ainsi que supprimer les commentaires (trouvés sur une ID et ça faisait planter)...
En tout cas, ça me semblait assez universel pour générer un xml correct quelque soit l'ID que j'avais essayé ... (dont une centrale météo)

sinon, pour le coup de la virgule, en vitesse, J'ai juste regardé en sandbox
avec une ancienne version (qui virait les tags et autres espaces en début de fichier, mais c'était prévu pour une ID spécifique) en ajoutant
dans $Toccurences , la virgule (......,",")
et dans $Treplace , le point (......,".")
et ça a fonctionné, la température réapparait.

comme le dernier script n'est pas organisé de la même manière, on peut virer des le départ la virgule pour lui remplacer le point en ajoutant ça juste apres le GET

$Toccurences = array(",");
$Treplace = array(".");
$result = str_replace($Toccurences,$Treplace,$result,$count);

(on doit pouvoir faire plus simple, parce que la, on ne change qu'un seul caractère et pas une série)
en attendant mieux
EDIT: plus simple et mieux a été fait dans le script maintenant corrigé.

C'est demain que j'aurai le temps, je referais les tests sur tous les exemples d'ID et quand c'est bon, j'éditerai juste le script posté dans le premier message...
EDIT : pas sur, je n'arrive plus à accéder à l'interface locale ... le port est il toujours 443 ?
(ouverture en NAT-PAT sur l'IP locale : mais ça me renvoi systématiquement sur ... ma box ?) ...
du coup je ne peux pas tester et je devrais attendre d'être sur place... en attendant, dis nous si ça fonctionne juste avec les 3 lignes ci dessus,

EDIT : le port est toujours 443 mais Bouygues a un bug reconnu avec ce port, il suffit de mettre un autre port externe et d'appeler ce dernier.

PS je ne sais pas ce qu'ils ont encore bricolé, mais l'hygro n'a pas eu de valeur générée pendant 10 heures puis c'est revenu dans la nuit ... (EDIT il ya eu 3 interruptions de service de ce genre qui ne sont plus d'actualité) je ne vois toujours pas de différence dans la présentation "mes capteurs" (https://measurements.mobile-alerts.eu/) à part cette virgule en séparateur décimal...
EDIT qui ne concerne QUE la température, et aucun autre paramètre, mais ça n'a aucune importance puisque le problème a été contourné.
Auteur:  clarinette49 [ 15 Fév 2020 17:34 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Il y a eu une indispo hier soir et ce matin tout était bon.
Auteur:  thrymartin [ 16 Fév 2020 04:32 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Je viens de voir que ça a encore fait pareil, 5H cette fois ci... j'ai 20h - 1h (ça doit donner 17h - 23h en métropole) : ça fait tard pour de la maintenance ... ça fait tôt pour un accès restreint de jour... je penche pour une panne serveur et les jours suivants nous éclaireront.
EDIT : on a été éclairé : tout est revenu à la normale

quand tu as essayé les trois lignes à ajouter au script, tu me dis ?
je cherche encore un moyen d'aller sur l'interface locale via internet, comme je le faisais avant, j'ai contacté le staf ... mais bon, le WE ... tu sauras plus vite que moi si ça fonctionne :-)
juste après la ligne
$result = httpQuery($url, 'GET');

$Toccurences = array(",");
$Treplace = array(".");
$result = str_replace($Toccurences,$Treplace,$result,$count);

sur le test http://sandbox.onlinephpfunctions.com/ ,
j'ai bien la température qui vient avec le point .

EDIT le script a été corrigé avec une méthode plus simple, directement dans les données capteur
Auteur:  clarinette49 [ 16 Fév 2020 08:29 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Je ne pourrai pas tester dans l’immédiat car je ne suis pas chez moi et je n'ai pas ouvert les ports....
Auteur:  thrymartin [ 17 Fév 2020 05:01 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

OK ben on attendra...
ça a recommencé pour l'arrêt du service web : 9h cette fois ci... les 3 fois à 10 secondes près, ce sont des heures pleines...
EDIT : ce n'était donc que de la maintenance, problème résolu
Auteur:  ARTNOW [ 17 Fév 2020 18:09 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Bonjour , j'ai investi et reçu mes accessoires mobile alerts Lacrosse , tout est configuré , anémomètre -girouette , 1 thermostat d’intérieure et un pluviomètre , j'ai bien toutes les données sur mon mobile et sur le site internet je visualise également mes infos de capteurs .

Petite question , j'ai vu qu'on pouvais en bricolant un peux récupérer les infos pour les exploiter sur eedomus , je n'ai pas le niveau pour faire un script sur le store , d'ou ma question , qui peux nous faire ca ??
Auteur:  clarinette49 [ 17 Fév 2020 18:51 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Il faut attendre un petit peu.
Lit le dernier message de ce post :
https://forum.eedomus.com/viewtopic.php?f=5&t=8258&p=87128#p87128
Auteur:  ARTNOW [ 17 Fév 2020 19:05 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

J'ai copier coller le script lacross.php , il est intégré maintenant dans ma EEDOMUS , je suis le tuto de notre ami thrymartin , et quand je fais test , il me donne cet écran avec une valeur Fake random ? j'ai loupé quelque chose ?

Pièces jointes:
2020-02-17_19-01-40.png
2020-02-17_19-01-40.png (50.94 Kio) Consulté 31722 fois
Auteur:  ARTNOW [ 17 Fév 2020 19:08 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

clarinette49 a écrit:Il faut attendre un petit peu.
Lit le dernier message de ce post :
https://forum.eedomus.com/viewtopic.php?f=5&t=8258&p=87128#p87128


Bonjour Clarinette , j'ai bien compris que ça beuguais , mais je voulais juste préparer le terrain dans l'attente que cela fonctionne , vu qu'il me faut pas mal cogiter pour comprendre comment on mais tout ça en place , je progresse bien grâce aux explications des collègues de ce forum qui se reconnaîtrons ;) Merci encore
Auteur:  ARTNOW [ 17 Fév 2020 19:48 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Ça fonctionne , j'avais une coquille sur l’orthographe du nom du script , quel c.... .Maintenant je vais faire les autres capteurs avec les noms et icônes propre , car la vitesse du vent avec comme réponse sud sud ouest c'est pas bon , (c'était juste un essai :D )

Pièces jointes:
2020-02-17_19-41-57.png
2020-02-17_19-41-57.png (57.43 Kio) Consulté 31718 fois
2020-02-17_19-41-20.png
2020-02-17_19-41-20.png (16.04 Kio) Consulté 31718 fois
Auteur:  ARTNOW [ 17 Fév 2020 20:38 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Voila , pour moi pour l'instant cela fonctionne :

Pièces jointes:
2020-02-17_20-37-22.png
2020-02-17_20-37-22.png (55.77 Kio) Consulté 31714 fois
Auteur:  thrymartin [ 18 Fév 2020 05:23 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Eh ben voila, tout va bien alors
En plus, je viens juste d'avoir une solution pour accéder à l'interface en local via internet pour atteindre le port 443 : mettre un port externe différent, c'est tout bête mais ça marche donc je vais pouvoir appliquer la petite correction.

NB : pour la première fois, on n'a pas eu d'arrêt de service hier soir (je rappelle dans l'ordre, un arrêt de respectivement 10h, 5h et 9h chaque jour).
ça semble se remettre en place tranquillement...
Autre solution, ou...au cas ou ça devienne récurrent (les interruptions de quelques heures), comme il s'agit en fait d'un temps d'attente trop long pour l'eedomus, puisqu'on peut toujours accéder à la page "mes capteurs" en patientant suffisamment, serait, si on a un espace web, de générer le xml à part, ce qui ne donnerait qu'un seul appel pour tous les capteurs d'un coup, puis de demander à l'eedomus d'aller directement le lire sur son espace perso.

PS : si tu remplaces les valeurs en lettres de direction par des icones, donnes nous ici la méthode
Auteur:  ARTNOW [ 18 Fév 2020 08:30 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

thrymartin a écrit:Eh ben voila, tout va bien alors
En plus, je viens juste d'avoir une solution pour accéder à l'interface en local via internet pour atteindre le port 443 : mettre un port externe différent, c'est tout bête mais ça marche donc je vais pouvoir appliquer la petite correction.

NB : pour la première fois, on n'a pas eu d'arrêt de service hier soir (je rappelle dans l'ordre, un arrêt de respectivement 10h, 5h et 9h chaque jour).
ça semble se remettre en place tranquillement...

PS : si tu remplaces les valeurs en lettres de direction par des icones, donnes nous ici la méthode


Salut thrymartin , pour les icones girouette , (en cours de test ) voici les screen de mes essais :

Pièces jointes:
2020-02-18_08-03-28.png
2020-02-18_08-03-28.png (119 Kio) Consulté 31699 fois
2020-02-18_08-02-06.png
ATTENTION il faut récupérer le nom exact des valeurs des points cardinaux
2020-02-18_08-02-06.png (68.71 Kio) Consulté 31699 fois
2020-02-18_08-05-11.png
2020-02-18_08-05-11.png (66.48 Kio) Consulté 31699 fois
Auteur:  thrymartin [ 18 Fév 2020 09:22 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

OK, merci

un autre truc aurait pu dans le script mettre les angles au lieu des valeurs textes :
nord = 0, nord est = 45 et donc nord nord est = 22.5 etc.
après en valeur numérique, c'est peut être plus simple d'attribuer des icônes aux valeurs... (?)
EDIT finalement non, une valeur "texte" vaut tout aussi bien, sinon, tu n'y serais pas arrivé :-)

pour la correction de la virgule, au lieu de mettre les 3 lignes en début de script qui virent toutes les virgules par des points de tout le fichier, plus logique est de faire le remplacement uniquement sur les données, la ou on supprime C, % , mm, km/h etc.
C'est ce que je propose sur le script d'origine modifié

on peut passer à autre chose :-)
Auteur:  thrymartin [ 24 Fév 2020 05:12 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Nouveau script en test avec cache de 30', mettez fréquence 30' sur tous vos capteurs et essayez d'étaler l'heure de mesure sur 30' pour l'ensemble, j'expliquerai apres.. la j'ai plus le temps

=> avec le cache, Il n'ya qu'un seul appel (par demi heure) au serveur mobile alerts pour tous les capteurs !
les autres étant lus en cache.

C'est pour la bonne cause :
pour éviter de saturer le serveur, le risque de blacklistage, et pas enerver le staf mobile alerts

En TEST (merci de vos retours)

Code : Tout sélectionner
<?php
// nom du script : lacross.php
// v2 : avec utilisation d'un cache / 30'

// fonction du script
    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));
    }

// cache
$cache_duration = 30;
$time_last_xml = loadVariable ( 'time_last_xml' );
if (( time () - $time_last_xml ) / 60 < $cache_duration )
{
$cached_xml = loadVariable ( 'cached_xml' );
echo $cached_xml ;
die ();
}

// script
    $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;
      
// mise en cache
$cached_xml = "<CACHE>";
$cached_xml .= $xml ;
$cached_xml .= "</CACHE>";
if ( $xml != '' )
{
saveVariable ( 'cached_xml' , $cached_xml );
saveVariable ( 'time_last_xml' , time ());
}
?>
Auteur:  clarinette49 [ 24 Fév 2020 07:18 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

Merci Thierry,
Comme je te l'ai dit, je ne pourrai faire les tests que dans 2 semaines, je ne suis pas à proximité de la box pour accéder aux scripts.
Auteur:  ARTNOW [ 24 Fév 2020 09:15 ]
Sujet du message:  Re: Données Mobile Alerts (Lacrosse)

[quote="thrymartin"]Nouveau script en test avec cache de 30', mettez fréquence 30' sur tous vos capteurs et essayez d'étaler l'heure de mesure sur 30' pour l'ensemble, j'expliquerai apres.. la j'ai plus le temps

En TEST (merci de vos retours)

Salut thymartin merci pour ton travail , je le test de suite , je te tien au courant :D
Page 2 sur 5 Le fuseau horaire est UTC+1 heure