Aller au contenu
lolomail

Gestion des delais d'arrosage en fonction de la météo

Recommended Posts

La HC2 est capable de gérer l'arrosage de votre jardin via le panneau d'arrosage. Dans ce panneau vous pouvez définir l'heure, la durée de l'arrosage mais aussi "adjust water" et "rain delay" afin de s'adapter à  la météo.

 

Sur le forum Fibaro, richo a mis a dispo le script suivant:

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "your_password")

-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)

-- change table in Lua for 24 hours delay
jsonTable.rainDelay = "24"

-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")

Cela permet de passer "rain delay" (décallage) à  24 heures.

 

Il a aussi mis une scène pour le déclencher en automatique:

--[[
%% properties
3 WeatherConditionConverted
%% globals
--]]

local VD_ID = 999 -- enter the ID of your Virtual device
local startSource = fibaro:getSourceTrigger();

condition = fibaro:getValue(3, "WeatherConditionConverted")

fibaro:debug("Weather change: "..condition)

if condition == 'rain' or condition == 'storm'
then fibaro:call(VD_ID, "pressButton", "1");
fibaro:debug('sprinkle delayed 24h')
end

1- J'ai repris cela pour créer un virtual device avec:

- Une label pour le delai,

- Trois boutons pour +0h / +24h / +48h

- Une label pour le ajustement en eau

- Trois boutons pour +0% / +10% / +20%

 

Cela me permettra de le choisir manuellement si besoin.

 

Le script pour le "rain delay" est du type:

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "your_password")

-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)

-- change table in Lua for 0 hours delay
jsonTable.rainDelay = "0"

-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")
fibaro:call(ID virtual device, "setProperty", "ui.Label1.value", " 0 heures");

Il suffit de changer "0" par "24" pour avoir un délai de 24h

 

Pour l'ajustement, le script est:

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "your_password")

-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)

-- change table in Lua for +0% of sprinkling
jsonTable.adjustWater = "+0"

-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")
fibaro:call(ID virtual device, "setProperty", "ui.Label2.value", " +0%");

Après j'ai crée une scène qui va déclencher le délai de 24h fonction du temps, cf image jointe. Il faut que je retravaille cette scène afin de faire quelque chose comme en LUA comme celle de richo et aussi utiliser la fonction ajustement s'il fait sec.

post-16-0-26240800-1388859828_thumb.jpg

post-16-0-12926100-1388859829_thumb.jpg

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Super ce Script merci pour la partage @lolomail  :60:

 

- c est quoi la condition météo pour "sec" en LUA ?  :wacko:

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de regarder, il y a:

clear = dégagé
cloudy = nuageux
rain = pluie
snow = neige
storm = tempête
fog = brouillard
 

Va falloir peut-être regardé s'il existe d'autres condition météo ou regarder avec la température et la durée

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

pourquoi ce n,est pas possible sur le panneau arrosage directement.c'est present dans la fenetre arrosage.j'avais effectue des tests, et toujours arrosage quand il pleuvait.

il faut creer un script et un module de plus.

brrrr

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est possible de mettre un delais dans le panneau d'arrosage, mais làvia un virtual device et une scene tu ne t'en occupes plus.

Peut-être que Fibaro integrera la fonction suivi le temps un jour qui sait.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir tous,

Et pour la version HCL, il y aurait un moyen de convertir le script LUA de Richo en non-LUA?

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

A mon avis, cela n'est pas possible. Il n'y a pas moyen de faire une suite d'instructions tel que celle-ci sans LUA.  :(

Partager ce message


Lien à poster
Partager sur d’autres sites

L'idée c'était d'activer la fonction rainDelay du panneau d'arrosage en une seule instruction, mais cette fonction n'existe peut-être pas :(

Partager ce message


Lien à poster
Partager sur d’autres sites

lolomail bonjour.

 

j'ai une demande d'info; j'ai ma pompe bassin et mon remplissage bassin sur le mode Arrosage (pratique pour programmer les vannes,,) et test, comme il pleut actuellement, je m’aperçois que en plus de l'arrosage pelouse (normal), mais j'ai aussi les deux précédents citées qui se décaler de +24h aussi,,,.

 

(plus de bulle et plus d'eau pour les poissons,,,,)

 

Y a t-il moyen de sélectionnées seulement les modules qu'on veut décalées ?

 

(je pourrais aussi créer un module virtuel pour eux deux, en cas, donc les sortir du mode arrosage.)

 

cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Non pour moi c'est un délai général et applicable a tout les modules qui est programmé.

Pour ta pompe utilise le GEA de Steven.

Partager ce message


Lien à poster
Partager sur d’autres sites

Petite MAJ comme indiqué sur le forum Fibaro pour un des utilisateurs il faut mettre àjour le script car y a eu quelques modifs sur le paramétrage de la HC2 sur le panneau d'arrosage:

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "your_password")
 
-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)
 
-- change table in Lua for 24 hours delay
jsonTable.rainDelay = 24
 
-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")

et

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "your_password")
 
-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)
 
-- change table in Lua for 0 hours delay
jsonTable.rainDelay = 0
 
-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")
fibaro:call(ID virtual device, "setProperty", "ui.Label1.value", " 0 heures");

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai des petits problèmes sur l'arrosage,,,,quand il pleut l'arrosage se mets en marche 3 sec toutes les 10 sec?

 

Incompréhensible, j'ai modifié le script,,, seulement sur un arrosage sur 3 en plus.

Il s'est bien décaler de 24h, mais arrose quand même.

Partager ce message


Lien à poster
Partager sur d’autres sites

@lolomail

J'ai suivi un sujet sur le forum officiel auquel tu participais. Un des membres a mis en place une solution qui me plait bien:

- 1 M173 capteur d'humidité du sol (http://www.kemo-electronic.eu) connecté à 
- 1 capteur universel Fibaro

et il fonctionne ok: tous les 36 minutes, le FUS est respectée si le sol est sec, donc j'ai une scène qui incrémente un GlobalVariable chaque fois que le capteur est violée. Dans la soirée, si le GlobalVariable est> 32 cela signifie qu'il n'a pas assez plu et puis les vannes électriques 12V sont ouvert (avec un 2x1,5 Fibaro) pendant quelques minutes.

 Mais il ne joint pas la scène en question. As-tu une idée ou déjà  une solution pour décaler automatiquement (par le FGBS et la variable) le délai d'arrosage du panneau?

Partager ce message


Lien à poster
Partager sur d’autres sites

Aucune idée mais j'aurais tendance àdire qu'il utilise ce virtual device, et a modifier le script de la scène qui vérifie l'état de la météo. Surement qu'il a une scène qui suivant la remontée de la sonde met àjour la variable et en modifiant celle du VD il intérogge la variable et décalle en conséquence.

Partager ce message


Lien à poster
Partager sur d’autres sites

 D'autant qu'il vérifie toutes les 36 minutes, là  une seule fois à  3h45 suffirait. Le FGBS et le pluvio sont déjà  installés et pour l'instant, la sortie du FGBS me colle un relais qui me coupe l'alim des EV sauf celle de la serre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce qu'il te manque c'est les prévisions météo car nul besoin d'arroser s'il va pleuvoir ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Tant qu'il n'a pas plus, j'arrose.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Je me permets de poster ici, car je cherche la fonction LUA, pour pouvoir passer le panneau d'arrosage en AUTO.

 

J'ai essayé via les blocs graphiques, puis passer en LUA ensuite, mais on ne peut faire que ON/OFF sur le device.

 

Merci pour votre aide si qqn a la solution.

 

Mikael

Partager ce message


Lien à poster
Partager sur d’autres sites

@mikael2235 : t'es allé voir le json ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut pepite,

Je vois les exemples de codes dans ce topic, mais c'est tout,

On peut aller voir ailleurs ?

Partager ce message


Lien à poster
Partager sur d’autres sites

je n'utilise pas le panneau d'arrosage, mais d'apres les codes du dessus tu peux peut-etre aller voir le json du panneau en tapant dans un navigateur :

http://IP_HC2/api/panels/drenchers

Evidemment je ne suis sur de rien ;-)

 

et poste ce que te dit le json

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui on voit des infos interessantes, tel que mode :

{"adjustWater":20,"rainDelay":0,"cycles":1,"drenchers":[{"id":122,"name":"Arrosage","mode":"auto","dead":"false","manualTime":0,"days":["Fr","Mo","Sa","Su","Th","Tu","We"],"cycles":[{"hour":21,"minute":15,"duration":3}],"nextDrenching":21731,"state":"false"}]}

Partager ce message


Lien à poster
Partager sur d’autres sites

et maintenant tu changes le "mode" :

-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)
-- changement mode 
jsonTable.mode = "auto" -- tu ne dois pas mettre auto evidemment, mets ton panneau en OFF et regarde de nouveau le json pour connaitre la valeur a mettre
-- modifie la valeur "mode"
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)

et reverifie ton json

Partager ce message


Lien à poster
Partager sur d’autres sites

 Comme je ne peux rien faire avec les stations WU (trop loin de chez moi) et le module virtuel de @Sakkhho, j'ai cherché dans la direction de @lolomail et le délai d'arrosage et voici à  quoi je suis arrivé:

 

  Bouton 11: "Délais à  0h"

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "password")

-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)

-- change table in Lua for 0 hours delay
jsonTable.rainDelay = 0

-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")
fibaro:call(307, "setProperty", "ui.Label1.value", " 0 heures");
fibaro:call(307,"setProperty","currentIcon",1142)

   Bouton 12: "Délais à  20h"  

HC2 = Net.FHttp("HC_IP",80)
HC2:setBasicAuthentication("admin", "password")
     
-- get table
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode(response)

-- change table in Lua for 0 hours delay
jsonTable.rainDelay = 20

-- send back
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)
fibaro:log("ready")
fibaro:call(307, "setProperty", "ui.Label1.value", " 20 heures");
fibaro:call(307,"setProperty","currentIcon",1143)

   Label1 "Délai"

   Bouton 21: "Mise à  jour"

local temp = fibaro:getValue(277, "value")
if (tonumber(fibaro:getValue(277, "value")) == 0 ) then
  fibaro:call(fibaro:getSelfId(), "pressButton", "1")
  fibaro:call(307,"setProperty","currentIcon",1142)
  elseif(tonumber(fibaro:getValue(277, "value")) == 1 ) then
  fibaro:call(fibaro:getSelfId(), "pressButton", "2")
  fibaro:call(307,"setProperty","currentIcon",1143)
  end

 Je lance ce dernier bouton avec le GEA quotidiennement un peu avant l'heure de l'arrosage et il me change le délai de l'arrosage du panneau. Je précise que l'Id 277 est mon pluviomètre domotisé par un FGBS.

Comme le fait remarquer @pepite, il doit être possible de modifier le mode auto.

Je cherche aussi un moyen de laisser une électrovanne (sous une serre) continuer à  arroser malgré un délai d'arrosage mais je ne sais pas quoi changer.

post-43-0-43124100-1432820194_thumb.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

×