WIKI : 🌦 Station météo Netatmo sur IPX800 V4

Bonjour Ă  tous,

je viens de mettre un nouveau WIKI en ligne.
Il consiste à vous apprendre comment récupérer les données de votre station météo Netatmo et à les envoyer vers l’IPX800.
Les mesures météo seront alors utilisables sur les dashboards, les scènes et les notifications.

Il est nécessaire d’héberger un script php sur un serveur (votre NAS, ou sur vos pages perso chez votre FAI)

Le wiki n’est pas terminé, mais vous saurez déjà l’essentiel.

Plus tard, je complèterai le WIKI avec l’utilisation des données sur l’IPX800.

  • widget
  • scènes
  • notifications (sms, mails)

http://gce.ovh/wiki/index.php?title=Station_météo_Netatmo

cdt

10 « J'aime »

bonjour,

le wiki complété, les widgets sont en place

image

cdt

7 « J'aime »

Bonjour,

pour ceux que ça intéresse, le Wiki est terminé.
J’ai ajouté

  • les alertes sur niveau bas des batteries
  • les alertes sur niveau de CO2 (qualitĂ© de l’air)

cdt

7 « J'aime »

Bonjour,
Merci pour ce tuto, je suis en train de le mettre en oeuvre et cela fonctionne parfaitement.
J’ajoute l’anémomètre, il faut juste que je trouve comment adapté la partie javascript (langage que je ne pratique absolument pas) pour transformer la direction du vent qui est donnée en degrés en quel que chose de plus visuelle de type boussole.
Le service NETATMO étant tombé pendant 24H pendant toute cette période les mesures affichées n’ont pas bougées et ce sans aucune indication. J’ai donc pensé à utiliser la date des mesures qui figure dans la liste des données récupérée dans le JSON mais visiblement il n’est pas possible de transmettre cette info à l’IPX800 ni au format date ni au format timestamp. Je vais donc modifier le script PHP pour calculer le nombre de minutes écoulées entre la date des mesures et celle de la récupération de données par le script puis le transmettre à l’IPX . Au niveau de l’IPX je pourrais ensuite gérer des alertes si les données ne sont plus mises à jour soit au niveau du serveur NETATMO soit au niveau de l’IPX.

1 « J'aime »

Bonjour,
je viens d’acquérir l’anémomètre.
Si vous patientez un peu, je mettrai le wiki Ă  jour. :slight_smile:

sinon, pour le vent, il y a un exemple sur le forum.
si ça peut aider

cdt

Merci pour l’exemple il me semblait bien un jour avoir vu quelque chose du genre sur le forum.

pour l’anémomètre, voici les lignes à placer dans le php :slight_smile:
pour moi, l’anémomètre est en Module 5.
Les vitesses $M5_Wind et $M5_Gust sont exprimées en km/h (Gust=rafale)
Les angles $M5_Wind_A et $M5_Gust_A sont exprimés en degrés ( degrés météo).

// module 5 : Anémomètre
$M5_Wind= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["WindStrength"]); //vitesse du vent
$M5_Wind_A= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["WindAngle"]) ; //angle du vent
$M5_Gust= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["GustStrength"]) ; //vitesse rafale
$M5_Gust_A= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["GustAngle"]) ; //angle rafale
$M5_Wind_Max= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["max_wind_str"]); //angle rafale
$M5_Wind_Max_A= floatval($json_devices["body"]["modules"][5]["dashboard_data"]["max_wind_angle"]) ; //angle rafale
$M5_battery=Batterie2(floatval($json_devices["body"]["modules"][5]["battery_vp"]));
if ($M5_Wind<0){$M5_Wind=0;}
if ($M5_Wind_A<0){$M5_Wind_A=0;}

Wiki à jour avec le module Anémomètre
script PHP + widget

4 « J'aime »

La semaine dernière j’ai eu un « 65533 Â» en tempĂ©rature min puis en relisant le code je viens de me rendre compte que les tempĂ©ratures nĂ©gatives ne sont pas gĂ©rĂ©es.

bonjour,
les analogiques virtuelles ne peuvent gérer que des valeurs positives.
Si vous voulez gérer les valeurs négatives (ce qui n’arrive jamais chez moi :joy: ) vous devez effectivement appliquer une formule avant le push, puis rétablir avec une autre formule sur la VA.

Par exemple, si la formule dans le code est x * 10 pour la gestion de la décimale, il faut écrire x*10 + 1000.
La formule sur la VA ne sera plus X/10 mais (x-1000)/10

cdt

Oh un peu de températures négatives c’est bon pour la santé, ca tue les microbes et puis l’après midi ca monte pratiquement à 20°C par contre c’est sur qu’il faut attendre encore un peu avant l’estivage de la piscine…
Bon trêve de plaisanteries, pourquoi appliquer un offset de 1000, même avec le réchauffement climatique 100 devrais suffire non?

Bonjour,
En général, on applique des équations de droite de Type f(x) =ax+b
Dans le code les températures sont multipliées par 10 afin de n’envoyer que des valeurs entières.
Donc pour compenser des températures de -20°C, il faut un offset supérieur à 200, ( et si quelqu’un applique mon code en Finlande ou au Groënland avec des températures à -50°C, il faudra un offset supérieur à 500. ).
j’ai donné un exemple du type
VA=(T * 10) + offset avec offset > 200 (1000 est une valeur qui offre une belle marge de sécurité)

Mais vous pouvez tout à fait appliquer des formules différentes type f(x)=a * (x+b)
VA=(T + offset) * 10 avec offset=100

à vous de voir, il suffira d’adapter les formules sur la VA de l’IPX800 V4

Effectivement j’étais sur une formule de type f(x)=(x+b)*a pour laquelle 100 est suffisant.
Par contre je fais les conversions avant le push et dans le javascript avant affichage, ne serait’il pas préférable de le faire au niveau des formules de conversion de l’IPX800?

bonjour,
La mise à jour est à faire dans les formules de chaque analogique virtuelle afin de pouvoir être utilisée dans un widgetnatif de l’IPX800, dans le moteur de scénario ou encore sur le X-Display.

Par contre, nous n’utilisons pas un widget natif. Nous utilisons alors une source de données, qui va chercher les données dans le fichier status.xml. Les données y sont toujours fournies brutes. Vous devez donc réappliquer la formule dans le javascript.

j’ai mis le wiki à jour avec les nouvelles formules appliquées aux données de type température du module extérieur afin de tenir compte des températures négatives.
cdt

Bonjour,
Après l’intégration de mes différents modules NETATMO et comme j’ai également un module X400 et un module X200PH je n’ai pratiquement plus d’entrées analogiques virtuelles de disponible.
Je me demande donc que si pour les modules NETATMO au lieu de passer par des variables « analogVxx Â» du fichier « status.xml Â» je ne peux pas passer par des variables que je n’utiliserais jamais comme par exemple « voletnn Â» vu qu’elles ne sont utilisĂ©es que comme source de donnĂ©es dans du javascript et jamais dans des scĂ©narios ou widget standard?

Bonjour
Je pense que l’expérience peut être tentée avec des valeurs de 0 à 100 comme les indicateurs de batterie ou hygrométrie.
Se la même manière la commande SET de l’API permet de jouer avec d’autres valeurs comme les dimmers, toujours de 0 à 100.

Je n’ai pas testé.
Faites nous un retour si vous y arrivez.
Cdt

Bonjour,

J’essaie actuellement de faire fonctionner le Wiki Netatmo pour un retour d’information de ma station météo, mais je n’arrive pas à avoir de retour de données JSON lors de l’étape récupération des données. J’obtient uniquement une page blanche.
Le script est hébergé sur NAS Synology.
J’ai essayé afin de trouver d’ou cela proviens, d’obtenir un retour sur les différentes variables lors de l’exécution du script. Cela à fonctionné hormis pour $response qui fait apparaître une page blanche (mais pas une page d’erreur).

J’ai essayer de modifier le script du wiki en recherchant des informations sur GitHub pour le paramétrage de l’API mais sans résultat.

Savez-vous d’ou cela peut provenir ? Suis-je le seul dans ce cas ?

Merci,

bonjour,
une page vide peut être provoquée par une erreur de syntaxe (point-virgule manquant, etc.)
cdt

Merci,
Je vais vérifier cela une nouvelle fois.
Pour le moment, lors d’une erreur de syntaxe tel que l’oubli d’un point virgule (ce que j’avais au début) je n’obtenais pas une page blanche mais une page d’erreur m’indiquant que le script n’est pas fonctionnel, d’ou m’a question après plusieurs semaines de recherche sans résultat.

Cordialement,

bonjour @fgtoul
j 'essai de mettre cette solution en marche
mais qd j’essai d’interoger le script j’ai ce message

Parse error: syntax error, unexpected ‹ $API_key â€ş (T_VARIABLE) in /volume1/web/Netatmo/netatmo2push.php on line 8

pb api de mon ipx je pense j’ai laisser l’api d’origine apikey
as tu une idee?
a prioris netatmo a change la securite aussi
cdt