Page 1 sur 4

Valeur d'un anemometre oregon WGR800

Publié : 16 mai 2015, 00:31
par lclem
Bonjour j'ai installé un anemometre oregon. Je voudrais recuperer la vitesse du vent pour fermer mes volets automatiquement si il soufle trop fort. quelqu'un a t il deja fait ca. Je n'arrive à trouver comment isoler la vitesse dans une variable pour la tester dans un evenement.
Merci de votre aide

Re: Valeur d'un anemometre oregon WGR800

Publié : 16 mai 2015, 09:11
par mike913
Bonjour
voici un script php permettant de récupérer les valeurs de l' anémomètre

Code : Tout sélectionner

<?php
echo "<pre>";
$url = 'http://IPDOMO:Port/json.htm?type=devices&rid=139';  // remplacer 139 par l'ID de l' anémomètre
$page = file_get_contents($url);
$obj = json_decode($page,true);
$res = $obj['result'][0];
print_r ($res);
echo floatval($res['Speed'])."<br>";
echo $res['DirectionStr'];
?>

Re: Valeur d'un anemometre oregon WGR800

Publié : 16 mai 2015, 16:55
par lclem
Bonjour je te remercie de ta reponse. juste une petite precision. Je vais pouvoir utiliser la valeur de cette variable dans domoticz? et deuxieme petite question, je le colle ou ce script PHP? Petite precision mais je pense que tu l'as compris à mes deux question, je debute dans l'utilisation de domoticz et tout ca :o

Re: Valeur d'un anemometre oregon WGR800

Publié : 18 mai 2015, 12:57
par patrice
Bonjour
Je te donne un script lua qui separe en 2 variables une mesure unique recue dans Temp_Hum et qui l'affecdte a SSalonTemp et sSalon_Humidity


commandArray = {}
sSalonTemp, sSalonHumidity = otherdevices_svalues['Temp_Hum']:match("([^;]+);([^;]+)")
sSalonTemp = tonumber(sSalonTemp)
sSalonHumidity = tonumber(sSalonHumidity)
print("Salon Temperature " .. sSalonTemp)
print("Salon Humidite " .. sSalonHumidity)
return commandArray

Re: Valeur d'un anemometre oregon WGR800

Publié : 21 mai 2015, 09:39
par deennoo
mike913 a écrit :Bonjour
voici un script php permettant de récupérer les valeurs de l' anémomètre

Code : Tout sélectionner

<?php
echo "<pre>";
$url = 'http://IPDOMO:Port/json.htm?type=devices&rid=139';  // remplacer 139 par l'ID de l' anémomètre
$page = file_get_contents($url);
$obj = json_decode($page,true);
$res = $obj['result'][0];
print_r ($res);
echo floatval($res['Speed'])."<br>";
echo $res['DirectionStr'];
?>
merci mike pour ce script qui m'interesse.

il recupere les valeurs de l anemometre ok, mais il en fait quoi ? comment les exploiter pour en faire une securité comme le souhaite lclem ? (j'ai le meme projet mais avec un store bane)

Re: Valeur d'un anemometre oregon WGR800

Publié : 21 mai 2015, 09:48
par vil1driver
utilises plutôt le code proposé par Patrice,
il suffit juste d'y ajouter le test voulu sur la variable et suivant résulta d'ordonner ou non la fermeture du store.

Re: Valeur d'un anemometre oregon WGR800

Publié : 21 mai 2015, 10:56
par deennoo
vil1driver a écrit :utilises plutôt le code proposé par Patrice,
il suffit juste d'y ajouter le test voulu sur la variable et suivant résulta d'ordonner ou non la fermeture du store.
SSalonTemp et sSalon_Humidity sont les noms des variables ?

Re: Valeur d'un anemometre oregon WGR800

Publié : 21 mai 2015, 11:07
par vil1driver
Oui mais il faut adapter pour un anémomètre

Re: Valeur d'un anemometre oregon WGR800

Publié : 03 juin 2015, 11:41
par deennoo
Les Gars je galere un max !

voici ce que j'ai trouver avec du json :

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=WB;WD;WS;WG;22;24
IDX = id of your device (This number can be found in the devices tab in the column "Idx")
WB = Wind bearing (0-359)
WD = Wind direction (S, SW, NNW, etc.)
WS = Windspeed [km/h]
WG = Gust [km/h]
22 = unknown (maybe Temerature?)
24 = unknown (maybe Temerature?)

Si je lance le script PHP plus haut il fonctionne

j'ai testé le script LUA de patrice en brut pour les temperature et Humidité biensur il fonctionne, mais comment l'adapter ?

Re: Valeur d'un anemometre oregon WGR800

Publié : 03 juin 2015, 13:37
par patrice
Bonjour

Au feeling comme ca

commandArray = {}
Wb, Wd,Ws,Wg = otherdevices_svalues['Le_nom-de-ton_anemo']:match("([^;]+);([^;]+)")
Wb = tonumber(Wb)
Ws = tonumber(Ws)
Wg = tonumber(Wg)
print("Wind bearing" .. Wb)
print("Wind direction " .. Wd)
print("Wind speed" .. Ws)
print("Wind gust " .. Wg)
return commandArray


Explications
Comme tu as 4 valeurs , orientation,direction,vitesse et vitesse du coup de vent (wind gust) on les retire par la ligne Wb, Wd,Ws,Wg = otherdevices_svalues['Le_nom-de-ton_anemo']:match("([^;]+);([^;]+)")
et on les affecte a wb,wd,....

Il faut convertir ensuite les données en nombre par un tonumber (sauf Wd qui contient Nord,Sud...)
puis on affiche les valeurs recues dans le log par un print


Possible que ca ne marche pas, pas testé et je fais ca depuis un smartphone dans la voiture, alors ...

Peut être serait il judicieux d'utiliser aussi le Wind gust qui donne la force du coup de vent en KM/h , en cas de rafales , mais je n'ai pas d'expérience concernant les anemo

Dis nous si ca marche (je dont je doute)