Aller au contenu

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


lolomail

Recommended Posts

Voici le json pour "off" :

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

Et le code que j'ai mis dans mon module virtuel :

HC2 = Net.FHttp("mon_i^p",80)
HC2:setBasicAuthentication("admin", "mon_password")

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

-- changement mode 
jsonTable.mode = "off"

-- modifie la valeur "mode"
json = json.encode(jsonTable);
HC2:PUT("/api/panels/drenchers", json)

fibaro:log("ready")
fibaro:call(128, "setProperty", "ui.Label1.value", "ARROSAGE OFF");

Mais quand je clique sur le bouton du module virtuel, le code s'execute bien, la valeur du label change aussi, mais pas le json ! Donc ça ne doit pas marcher.

Lien vers le commentaire
Partager sur d’autres sites

c'est moi, apriori le "mode" est sous "drenchers"

 

peut-etre json.drenchers.mode, j'avoue, je ne sais pas allé dans un sous-sous ;-)

 

Par exemple pour verifier modifie ton raindelay pour tester :

jsonTable.rainDelay
Lien vers le commentaire
Partager sur d’autres sites

 Le mode auto ou off à  l'air attribué à  chaque Id d'arroseur dans le json.

 

{"adjustWater":0,"rainDelay":0,"cycles":1,"drenchers":[{"id":84,"name":"Haies","mode":"auto","dead":"0","manualTime":0,""days" :["Fr","Mo","Sa","Su","Th","Tu","We],"cycles":[{"hour":21,"minute":10,"duration":5}],"nextDrenching":17001,"state":"0"}, {"id":86,"name":"Cour","mode":"off","dead":"0","manualTime":0,"days":["Fr","Mo","Sa","Su","Th","Tu","We"], "cycles":[{"hour":20,"minute":45,"duration":5}],"nextDrenching":15501,"state":"0"}




			
		
Lien vers le commentaire
Partager sur d’autres sites

Quand le SBS (mydomotique / domotique-info) sera dispo, on pourra y connecter ce genre de sonde, et surtout l'intégrer facilement ànotre box grâce àl'API.

En attendant, c'est faisable, mais faut maitriser Arduino....

Lien vers le commentaire
Partager sur d’autres sites

 @mikael2235,

Le plus simple est de passer à  "off" les électrovannes que tu ne veut pas qu'elles arrosent dans l'interface HC2.

Lien vers le commentaire
Partager sur d’autres sites

 Non, tu as raison, pas possible de régler sur les applis, ce n'est dispo que sur l'interface HC2 mais alors est-ce que cela se comporte pas comme pour un capteur avec armé, désarmé?

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Bonjour,

Quelqu'un saurait il comment changer la valeur maximum du temps d'arrosage proposé : 15 min c'est vraiment trop peu pour l'arrosage d'un verger par exemple...j'aimerais bien pouvoir arroser 120 minutes par exemple...comment faire?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Le temps mini par cycle est bridé au max à  15 min. et pas possible de le modifier  -_-

 

La seule solution si tu souhaites un arrosage plus long, est de cumuler les cycles ( maxi 5 )

 

Ce qui fait donc un temps maxi d'arrosage / jour de :  1 heure, 15 minutes

 

gallery_2_27_104258.png

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
  • 7 months later...

Salut,

 

chez moi (V4.070) le Raindelay doit etre un nombre et non un string pour que cela fonctionne.

Il y a également un autre port pour ne pas avoir a s'autentifier:

voici ma solution:

 

  HC2 = Net.FHttp("127.0.0.1", 11111); 
 
  r,s,e = HC2:GET("/api/panels/drenchers");
  jsonTable = json.decode®
   -- change table in Lua for 0 hours delay
  jsonTable.rainDelay = 5
   -- send back
   json = json.encode(jsonTable);
  r,s,e = HC2:PUT("/api/panels/drenchers", json)
  
  if tonumber(e) == 0 then 
     fibaro:debug("Raindelay  aktualisiert."); 
   else 
     fibaro:debug("Aktualisierung vom Raindelay fehlerhaft!!!"); 
   end 
Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

Bonjour à  tous,

 

je cherche à  faire un VD me permettant de stopper le panneau d'arrosage pour l'hiver par exemple, et donc mettre le mode à  off pour toutes les zone

j'ai essayé les différents scripts de ce sujet mais ca ne fonctionne pas.

 

Est ce que quelqu'un pourrait me mettre un script fonctionnel sur V4?

Lien vers le commentaire
Partager sur d’autres sites

voici mon script : j'arrive bien a récupérer les valeurs mais pour je ne sais quel raison, le fichier json n'est pas enregistré

 

HC2 = Net.FHttp("127.0.0.1", 11111); 
 
r,s,e = HC2:GET("/api/panels/drenchers")
jsonTable = json.decode®
   -- change table in Lua for 0 hours delay
for i=1,10,1 do
jsonTable.drenchers.mode = "auto"
end
 
json2 = json.encode(jsonTable)
r,s,e = HC2:PUT("/api/panels/drenchers", json2)
fibaro:call(484, "setProperty", "ui.Label1.value", "AUTO")
Lien vers le commentaire
Partager sur d’autres sites

je continue a investiguer et je constate qu'avant le PUT, la variable json2 contient bien les bon champs avec les bonnes valleurs mais les champs ne sont plus dans le meme ordre.

est ce que le probleme ne viendrait pas de cela: les champs doivent être dans le meme ordre?

Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

j'avais aussi essay d'envoyé le fichier directement en PHP mais ca ne fonctionne pas donc ca doit etre bloqué par fibaro

j'ai contourné en envoyant chaque jour un raindelay via GEA pour mettre en standby

Lien vers le commentaire
Partager sur d’autres sites

voilà  une base pour mettre à  jours tous les arroseurs d'un panneau à  Auto ou off 

 

local localhost = '127.0.0.1';

local port = 11111;
HC2 = Net.FHttp(localhost, port)
 
response ,status, errorCode = HC2:GET("/api/panels/drenchers")
-- entete
rd = jsonTable.rainDelay
-- table des arroseurs
dr = jsonTable.drenchers
for i = 1, #dr do
id = jsonTable.drenchers.id
nd = jsonTable.drenchers.nextDrenching
md = jsonTable.drenchers.mode
 
-- la mise à  jour du Json ne permet que de modifier l'entête du panneau, les autres propriétés semblent être attachées directement au device.
 fibaro:call(id, "setDrenchingMode", "off") -- ou "auto"
 
fibaro:debug("mode -> " .. md .. " pour id " .. id .. "raindelay " .. rd .. " Nextdrench : " .. nd ) 
end
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...