Bonjour
Je vous propose un petit tuto pour récupérer les données météo générées par Weewx.
Commentaires, corrections et ajouts sont les bienvenus.
Merci
Hervé
Bonjour
Je vous propose un petit tuto pour récupérer les données météo générées par Weewx.
Commentaires, corrections et ajouts sont les bienvenus.
Merci
Hervé
Weewx >>>>> Jeedom
Comment récupérer sur Jeedom les données de sa station météo connectée à Weewx.
-1- Weewx
Les prérequis :
La station météo est bien connectée à Weewx qui génère une page internet affichant les données de la station météo.
Préambule :
Lors de l’installation de weewx il est demandé quel type de station va être connectée.
Cela charge le driver correspondant qui va gérer les données transmissent par la station météo.
La page weewx: Hardware Guide fourni pour chaque driver les données météo qui sont récupérées.
Par exemple pour ma station WH1080 c’est le driver FineOffsetUSB qui est utilisé. Les données enregistrées sont :
Création des page web à partir des ‘skins’ :
Weewx fourni en standard, dans le répertoire ~/weewx/skins, des « habillages » qui permettent de générer des rapports (HTML, XML, FTP …).
Le fichier weewx.conf défini, dans la partie [StdReport], quels skins sont utilisés et où ils sont générés.
Par exemple voici un extrait de mon fichier weewx.conf :
[StdReport]
##Emplacement des skins, par rapport à WEEWX_ROOT
SKIN_ROOT = /etc/weewx/skins
##Emplacement des rapports générés, par rapport à WEEWX_ROOT
HTML_ROOT = /var/www/html/weewx
[[SeasonsReport]]
skin = Seasons
enable = true
[[SmartphoneReport]]
skin = Smartphone
enable = false
HTML_ROOT = /var/www/html/weewx/smartphone
[[neowx-material]]
skin = neowx-material
enable = true
HTML_ROOT = /var/www/html/weewx/neowx
HTML_ROOT défini où les pages sont générées (ici >> ip_serveur_weewx/weewx).
Le skin Seasons est défini par le bloc [[SeasonsReport]]
Skin = Seasons >> nom du répertoire
enable = true >> skin actif)
HTML_ROOT n’est pas défini, Seasons s’affichera directement à l’adresse : ip_serveur_weewx/weewx
Le skin Smartphone n’est pas affiché car enable = false.
Pour le skin neowx-material :
HTML_ROOT = /var/www/html/weewx/neowx >> visible à l’adresse : ip_serveur_weewx/weewx/ neowx
Transmettre les données météo à Jeedom :
C’est le ‘skin’ Seasons, fourni en standard, qui est utilisé dans ce tuto.
Pour expédier les données météo de la station à Jeedom
Toutes les 5 minutes, weewx génère du contenu (rapport) correspondant aux fichiers .tmpl présent dans les répertoires de skins actifs. Un fichier jeedom.xml sera donc généré dans le répertoire html du skin Seasons.
Fichier XML :
Il faut mettre dans le fichier jeedom.xml.tmpl toutes les données à transmettre. La syntaxe est :
<nom_de_la_donnée>donnée< / nom_de_la_donnée>
Weewx permet de transmettre de données « simple » comme $current.inTemp (température intérieure actuelle) ou des calculs de données comme des sommes, des moyennes, des mini ou maxi ….
Il faudra plonger dans les docs de weewx pour en saisir toutes les possibilités
Voici pour exemple mon fichier jeedom.xml.tmpl (récupéré dans cette discussion de l’ancien forum >> ici ) :
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
<weewx>
<heure>$current.dateTime.format("%H:%M")</heure>
<time>$current.dateTime</time>
<tempExt>$current.outTemp.formatted</tempExt>
<MaxTempExt>$day.outTemp.max.formatted</MaxTempExt>
<HeureMaxTempExt>$day.outTemp.maxtime</HeureMaxTempExt>
<MinTempExt>$day.outTemp.min.formatted</MinTempExt>
<HeureMinTempExt>$day.outTemp.mintime</HeureMinTempExt>
<windChill>$current.windchill.formatted</windChill>
<indChaleur>$current.heatindex.formatted</indChaleur>
<pointRosee>$current.dewpoint.formatted</pointRosee>
<humExt>$current.outHumidity.formatted</humExt>
<pression>$current.barometer.formatted</pression>
<tendancePression>$trend.barometer.formatted</tendancePression>
<vitVent>$current.windSpeed.formatted</vitVent>
<dirVent>$current.windDir.formatted</dirVent>
<compasVent>$current.windDir.ordinal_compass</compasVent>
<vitMaxVent>$day.wind.max.formatted</vitMaxVent>
<HeureVitMaxVent>$day.wind.maxtime</HeureVitMaxVent>
<DirMaxVent>$day.wind.gustdir.formatted</DirMaxVent>
<Precipitation>$day.rain.sum.formatted</Precipitation>
<TauxPrecipitation>$current.rainRate.formatted</TauxPrecipitation>
<TauxMaxPrecipitation>$day.rainRate.max.formatted</TauxMaxPrecipitation>
<HeureTauxMaxPrecipitation>$day.rainRate.maxtime</HeureTauxMaxPrecipitation>
<Precipitationmois>$month.rain.sum.formatted</Precipitationmois>
<Precipitationannuelle>$year.rain.sum.formatted</Precipitationannuelle>
<UV>$current.UV</UV>
<UVMax>$day.UV.max</UVMax>
<HeureUVMax>$day.UV.maxtime</HeureUVMax>
<tempInt>$current.inTemp.formatted</tempInt>
<humInt>$current.inHumidity.formatted</humInt>
</weewx>
Contrôle de la création du fichier jeedom.xml :
Allez à l’adresse >> ip_serveur_weewx/weewx/jeedom.xml
C’est fini du côté de Weewx
-2- Jeedom
Installer le plugin Scripts :
Ajouter un script :
Onglet Equipement
Onglet Commandes :
Ajouter autant de commande script que de données méteo :
Résultat :