Valeur d'un anemometre oregon WGR800

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Valeur d'un anemometre oregon WGR800

Message par deennoo »

bon t'es trop fort sur un telephone !

tu avais presque tout bon

en Rouge, la correction :
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
Donc j'ai nommer le script : script_device_vent.lua et j'ai bien les valeurs de l anémomètre qui apparaissent dans le log.

j'en fait quoi maintenant ??
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Valeur d'un anemometre oregon WGR800

Message par patrice »

Bonsoir
Cool que ca marche a peut prêt
Maintenant il faut les affecter a tes widgets Domoticz
On peut le faire via curl et l' api json
Mais il doit bien y avoir un truc en lua pour envoyer une valeur ds un périphérique.
Je n'ai pas de Domoticz ss la main et il est trop tard pour que j' arrive a trouver

Quelques specialistes de lua devraient pouvoir t' aider (ou le wiki peut-être)
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Valeur d'un anemometre oregon WGR800

Message par vil1driver »

Une fois que tu parviens à isoler l'info utile il te suffit de la tester et suivant résultat faire l'action.

Exemple:

Code : Tout sélectionner

If Ws > 20 then
CommandArray['mon store']='Off'
End
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Valeur d'un anemometre oregon WGR800

Message par patrice »

bonjour,
Ah ben oui , il fallait juste faire un off sur les volets !!

je cherchais à remplir un widget avec la valeur de Ws !!!
et d'ailleurs comment fait on en Lua pour affecter une valeur à un device ?

y a un truc comme otherdevices_svalues['Le_nom-de-ton_anemo']= 25 ?
ou il faut faire curl ?
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Valeur d'un anemometre oregon WGR800

Message par deennoo »

vil1driver a écrit :Une fois que tu parviens à isoler l'info utile il te suffit de la tester et suivant résultat faire l'action.

Exemple:

Code : Tout sélectionner

If Ws > 20 then
CommandArray['mon store']='Off'
End
Merci pour ce bout de code, je l ajoute tel que au code precedent qui me permet de connaitre les valeurs de l anemo ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Valeur d'un anemometre oregon WGR800

Message par vil1driver »

Il te faut comprendre et adapter...
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Valeur d'un anemometre oregon WGR800

Message par deennoo »

vil1driver a écrit :Il te faut comprendre et adapter...
Avec plaisir et cela fait un moment ou je passe l apres midi a chercher a comprendre pour ce fichu store mais il me manque des documentations, connaissances.

Documentation sur le LUA (le wiki domoticz est pas mal mais encore trop technique pour moi qui n'ai pas les bases)
Documentation sur les variables Utilisateurs (idem que le LUA)

Il y a certaines choses que je peux faire et comprendre en LUA (je viens de capter pour le twice, j'avais realisé des script pour piloter mes prises 433 direct au GPIO et codesend sans le rfxcom) principalement en faisant du copier, coller, adapter, relire, retravailler.


Par exemple Patrice donne le code pour avoir les variables de l anemometre, je n'ai toujours pas compris si je devais :

- creer les variables utilisateurs moi meme dans domoticz ? et dans ce cas le code les mets a jours (ce qui ne marche pas)
- le code doit il creer les variables (comme le fait le script twice ?)
- est ce que je dois appeller le script : script_device_store.lua ou script_variable_store.lua ???

J'ai reussit a adapter le code de patrice pour avoir l'etat du store (open ou close), donc maintenant dans les log j'ai l anemometre et l etat du store



Si tu as des sources de documentation partage les stp
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Valeur d'un anemometre oregon WGR800

Message par vil1driver »

Le script de patrice n'utilise aucune variable utilisateur, mais de simples variables internes au script et qui n'existent que durant l'exécution de script.
Les variables utilisateur sont elle conservées et peuvent être réutilisées au besoin.

Dans notre cas il s'agit juste de séparer les infos de l'anémometre pour les tester au besoin une à une dans la suite du script.

Les variables déclarées ne servent qu'à ça. On se fiche bien de les conserver.

Du coups après c'est juste de la traduction:

Je veux que
Si (if)
La vitesse du vent (Ws)
Est suppérieur (>)
À 20km/h (20)
Alors (then)
Je ferme mon-store (commandArray['mon-store']='Off)
Fin (end)

Script_device_xxx.lua est exécuté à chaque maj d'un device
Script_time_xxx.lua est exécuté toutes les minutes
Script_variable_xxx.lua est exécuté à chaque maj d'une variable utilisateur.

Mes sources ne sont que le wiki et google ofc.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Valeur d'un anemometre oregon WGR800

Message par deennoo »

bah crotte les gars vous pouvez etre fiere de vous !

Avec vos betises et le fait que je n aime pas rester sur un echec et aussi cette page (http://lua-users.org/wiki/TernaryOperator) j'ai pondu ceci :

Code : Tout sélectionner

commandArray = {}
Wb, Wd, Ws, Wg = otherdevices_svalues['Anemometre']:match("([^;]+);([^;]+);([^;]+);([^;]+)")
Wb = tonumber(Wb)
Ws = tonumber(Ws)
Wg = tonumber(Wg)
print("Vitesse du Vent " ..  Ws)
print("Vitesse Rafale " ..  Wg)

etat = otherdevices_svalues['PIR Store']:match("([^;]+)")
etat = tonumber (etat)

if etat  > 14 then
	 print("Store Ouvert")
 else
	print ("Store Fermer")
 end
if Ws  > 75 then
	commandArray['Store Terrasse']='Off'
end
Deltat = otherdevices_svalues['Delta_T']:match("([^;]+)")
Deltat = tonumber(Deltat)
print("il fait chaud " ..  Deltat)

if Deltat > 1 then
	print("on ouvre le store")
	commandArray['Store Terrasse']='On'
end
return commandArray
et Cela fonctionne en plus !!

Anemometre c'est le WGR800
Store terrasse : c est le store de la terrasse
PIR Store : c'est le capteur chacon qui me permet de savoir si le store est ouvert ou fermé
Deltat : c'est un dummy thermometre qui me calcule la difference entre la temp exterieur et le salon (actuellement +16°c)
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Valeur d'un anemometre oregon WGR800

Message par vil1driver »

Franchement bravo !

Par contre lorsqu'un device ne contien qu'une seule info il y a plus simple, exemple ceci:

Code : Tout sélectionner

Deltat = otherdevices_svalues['Delta_T']:match("([^;]+)")
Peut être remplacé par ceci:

Code : Tout sélectionner

Deltat = otherdevices['Delta_T']
Probablement idem pour etat...

Sinon je ne comprends pas trop ton 14 ?
Quel est le model de capteur chacon qui te remonte ça ?

Autre point, il se peut que tu ai du vent et un delta de temp supérieur à 1, dans ce cas où tes 2 conditions sont vraies, seule la dernière action sur ton store sera effectuée.

Du coups, je ferais plutôt comme ceci:

Code : Tout sélectionner

Deltat = otherdevices['Delta_T']
if Ws  > 75 then
   commandArray['Store Terrasse']='Off'

elseif Deltat > 1 then
   print("on ouvre le store")
   commandArray['Store Terrasse']='On'
end
Dans ce cas la première condition testée vraie, stop le teste des suivantes. Ton store se fermera meme si le delta est supérieur à 1.. Et ne s'ouvrira que s'il n'y a pas de vent.

Ps, pour sécuriser d'avantage perso je tiendrais compte également des rafales.

Code : Tout sélectionner

if Ws  > 75 or Wg > 75 then
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre