Vous avez une station météo qui remonte ces informations sous WeatherUnderground
Vous voulez récupérer ces valeurs mais sans passer par un plugin (d’ailleurs à date, pas de plugin qui fonctionne pour ce besoin)
Vous voulez que les données soient remontées dans votre MQTT
Alors je vous propose un petit script sous python que je viens de terminer. Il fait tout ce que j’ai mis au-dessus (pour une seule PWS par contre) dans une image Docker !
Hello,
Ce tuto semble pas mal.
Je cherche a remonter des infos via weather underground sans le plugin puisqu’il est mort.
Possible en direct sans passer par un docker (je ne sais pas comment ça fonctionne et comment le mettre en place)
L’idée serait de récupérer sur mon raspberry avec mon jeedom directement dessus sans passer par une autre plateforme.
Je reviens sur le sujet car j’ai installé ma statio météo qui remonte les infos dans WeatherUnderground et WeatherCloud.
Toujours pas de possibilité sans docker ?
Peut-être pas ce qui est demandé mais permet via scenario de récupérer les données de la station et de les injecter dans un virtuel (les byId(7230) renvoyant sur le numéro de l’info du virtuel). A mon avis possiblité de les injecter dans un objet MQTT manager.
if ($response) {
$data = json_decode($response, true);
//message::add('json ', $data);
$obs = $data[‹ observations ›][0];
//message::add('json obs ', $obs);
// — DISTRIBUTION VERS LE VIRTUEL —
// Remplacez les chiffres par les ID de vos commandes virtuelles
// Température
if (isset($obs['metric']['temp'])) {
cmd::byId(7230)->event($obs['metric']['temp']);
}
// Humidité
if (isset($obs['humidity'])) {
cmd::byId(7231)->event($obs['humidity']);
}
// radiations solaires
if (isset($obs['solarRadiation'])) {
cmd::byId(7234)->event($obs['solarRadiation']);
}
// UV
if (isset($obs['uv'])) {
cmd::byId(7235)->event($obs['uv']);
}
/*
N => 337.5° - 22.5° (0°)
NE => 22.5° - 67.5° (45°)
E => 67.5° - 112.5° (90°)
SE => 112.5° - 157.5° (135°)
S => 157.5° - 202.5° (180°)
SW => 202.5° - 247.5° (225°)
W => 247.5° - 292.5° (270°)
NW => 292.5° - 337.5° (315°)
*/
// Direction du vent
if (isset($obs['winddir'])) {
cmd::byId(7238)->event($obs['winddir']);
// Tableau des 8 directions cardinales principales
$cardinaux = ["Nord", "Nord-Est", "Est", "Sud-Est", "Sud", "Sud-Ouest", "Ouest", "Nord-Ouest"];
// Calcul de l'index : chaque secteur fait 45°, en divisant par 8 on sait sur quel secteur on tombe, le "centrage" (22.5 avant et 22.5 après) étant réalisé par le round.
// Récupération du texte correspondant
$directionTexte = $cardinaux[round($obs['winddir'] / 45) % 8];
// Envoi de l'événement vers votre commande Jeedom
cmd::byId(7242)->event($directionTexte);
}
}
// Vent vitesse
if (isset($obs['metric']['windSpeed'])) {
cmd::byId(7239)->event($obs['metric']['windSpeed']);
}
// Vent rafales
if (isset($obs['metric']['windGust'])) {
cmd::byId(7240)->event($obs['metric']['windGust']);
}
// Pression
if (isset($obs['metric']['pressure'])) {
cmd::byId(7241)->event($obs['metric']['pressure']);
}
// Pluie du jour
if (isset($obs['metric']['precipTotal'])) {
cmd::byId(7236)->event($obs['metric']['precipTotal']);
// Pluie du moement
if (isset($obs['metric']['precipRate'])) {
cmd::byId(7237)->event($obs['metric']['precipTotal']);
}
// $scenario->setLog(« Mise à jour météo effectuée avec succès. »);
} else {
$scenario->setLog(« Erreur lors de la récupération des données WU. »);
}