[Tuto] Mobile-Alerts

Bonne année !

Je ne pense pas, tu a une réponse HTML 400 Bad request, erreur de syntaxe a priori.
La commande complète (en une seule ligne de commande) pour tester qui doit renvoyer une structure json à l’écran :

curl -H « Content-Type: application/json » -X POST -d’{« deviceids »:« XXXXXXXXXXXX »,« phoneid »:« XXXXXXXXXXXX »}’ https://www.data199.com/api/pv1/device/lastmeasurement

A noter que je n’arrive plus à récupérer les données de mon pluviomètre, y’a plus de « measurement », WTF ?

1 « J'aime »

J’ai vérifié la syntaxe.
Et j’ai bien progressé, j’ai maintenant une erreur 403 :wink:
« curl: (22) The requested URL returned error: 403 »

HTTP 403 Forbidden indique qu’un serveur comprend la requête mais refuse de l’autoriser.

Pareil en executant sudo curl …

Une idée ?

Et si tu fais juste (en ligne de commande) :

curl https://www.data199.com/api/pv1/device/lastmeasurement

Ca doit répondre :

{
« Message »: « The requested resource does not support http method ‹ GET ›. »
}

oui, ça répond bien

{
« Message »: « The requested resource does not support http method ‹ GET ›. »

en mode commande et user jeedom

Bonjour à tous,

Après quelques recherches, je suis tombé sur ce forum. Je n’ai pas tout à fait compris ce qu’était Jeedom et plugin-script mais je pense qu’il y a des choses ici qui pourraient m’être utiles pour ce que je souhaite faire.

J’ai une passerelle Mobile-Alerts avec plusieurs capteurs (température, hygrométrie, pression, vent et pluviométrie). Je peux accéder aux valeurs de mes capteurs sur https://measurements.mobile-alerts.eu. J’aimerais pouvoir afficher ces informations météo sous forme de tableaux et graphiques à la manière de ce qui est fait sur infoclimat fr (ex : Charrin (Nièvre - France) | Relevés météo en temps réel - Infoclimat. Le site monitor.mobile-alerts.eu permet d’obtenir presque ce que je recherche mais il ne semble accepter que les capteurs de température et hygrométrie.

Est-il donc possible de récupérer les valeurs depuis la page measurements.mobile-alerts.eu pour les afficher sur un site web (ex page WordPress) à la manière de ce qui est fait sur infoclimat fr ? Existe-t-il des tutos ou des templates pour ça ?

Merci d’avance pour votre aide !

Voir ici : Extraction données de sondes Mobile-Alerts/La Crosse - #46 par laurent.da-col

Merci @laurent.da-col ! Ce code est à utiliser dans Jeedom ? Je ne comprends pas trop ce qu’est Jeedom en fait…

C’est un serveur domotique mais ce code est du PHP qui peut servir également en dehors de Jeedom pour extraire des informations de la page web measurements.mobile-alerts.eu

Jai passé ta requête (en changeant les << par des ") et j’ai le message :
« Message »: « IP address rejected »

Je me suis fait blacklisté ?

Merci ! Je vois, je vais essayer d’utiliser ce code.

Pas facile tout ça ! Je crois que je suis pas près d’avoir une page similaire à Infoclimat pour visualiser mes données… :grinning_face_with_smiling_eyes:

Pour essayer de comprendre le code PHP, si je veux simplement récupérer la valeur de mon premier capteur et l’afficher, le code devient quoi ?

Merci pour l’aide !

Pour commencer il faut que tu récupère les chemins xpath (cela ressemble à quelque chose comme /html/body/div[2]/div[1]/div/div/div[4]/h4, chrome et firefox permettent de récupérer cela facilement) des différentes mesures que tu souhaites extraire de ta page mobile alerts. Ensuite ce code PHP permet d’extraire les mesures :

Connexion et récupération de la page web mobile alerts :

$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);

Extraction des valeurs :

$value=$xpath->query("/html/body/div[2]/div[1]/div/div/div[4]/h4")[0]->childNodes[0]->nodeValue;

etc...

$phoneid doit être remplacé par ton identifiant mobile alerts

Merci beaucoup !! J’arrive maintenant à récupérer des données.

À quoi sert les « ID de la commande » dans $tabmodules et cette partie du code :

if ($value!="---" && $value!="OFL") {

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

};

? Merci !

Cette partie du code est propre à Jeedom. Elle envoie chaque valeur extraite à une commande Jeedom identifiée par son ID.

Ok, je comprends, merci. Est-il possible à partir de ce code de récupérer les valeurs automatiquement afin de remplir une base de données ? Ou bien sais-tu si Mobile-Alerts peut donner un accès direct à la base de données d’origine (ce serait plus simple).

Sinon, en cliquant sur un capteur on a accès à un tableau avec les données de la journée. Est-il possible de récupérer tout ce tableau avec un script PHP ? Sur cette même page, il y a un bouton « Exporter comme fichier CSV ». Est-il possible d’accéder à ce bouton à partir d’un code PHP ? Cela pourrait être pratique pour récupérer automatiquement toutes les données.

Merci encore ! :slightly_smiling_face:

Bsr…
Si tu historises les données de tes capteurs, tu peux récupérer celle ci dans ta base, ou le plus simple pour cela le Plugin « Datat export » :thinking:

Bonsoir @Doubledom,

Merci pour ton message. Peux-tu m’en dire plus sur la façon d’« historiser » les données et sur le plugin « data export » ? Merci.

J’essai de te montrer ! sinon assez simple avec le plugin
un exemple direct lecture dans le plugin …

et fichier xlsx
congélateur_2022-01-09_18h46 - Copie.xlsx en .txt (1,3 Mo)
a renommer en xlsx

C’est un plugin du logiciel Jeedom ? Je ne connais pas Jeedom :confused:, je suis tombé sur ce fil de discussion « par hasard »… Tu utilises le code PHP ci-dessus pour faire ça ? Entre ton capteur et ta capture d’écran, quelles ont été les étapes ? Merci.

oui un peu le code , j’ai pas mis à jour le fait que le site ne réponde pas pour l’instant ( c’est pas bien !)
Pour le plugin « Data Export » voir la doc c’est plus simple et cela fait un peu de lecture !