Aller au contenu
lolomail

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

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.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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"}




			
		

Partager ce message


Lien à poster
Partager sur d’autres sites

Did, on peut faire une commande json, en précisant le module peut-etre (comme un WHERE ID=xx ) ?

Partager ce message


Lien à poster
Partager sur d’autres sites

 C'est là  où je bloque, je suis déjà  content d'être arrivé jusque là .

Partager ce message


Lien à poster
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....

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Did, justement le but est d'eviter la connexion àl'interface via un PC, d'autant plus que le mode ne peut pas etre changé via l'appli Android (ou alors j'ai pas trouvé comment)

Partager ce message


Lien à poster
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é?

Partager ce message


Lien à poster
Partager sur d’autres sites

salut à  tous ^^

 

Excellent tuto :)

 

A Quimperlé, j'ai pas ce problème, vive la bretagneeeeeeeuuuu !

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, tres tres compliquer cet arrosage,,,,,( mais j'irai pas essayer le new module de GreenIQ)

Apres avoir essayer plusieurs scenes sur le forum, rien de concluant encore, je vais essayer le tien !

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 

Partager ce message


Lien à poster
Partager sur d’autres sites

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?

Partager ce message


Lien à poster
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")

Partager ce message


Lien à poster
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?

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai aussi fait quelques tests et bien que les champs ne soient pas dans le même ordre, le raindelay se met bien à  jour mais pas le mode 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

sur le forum fibaro, j'ai trouvé cette commande : 

 

HC2:POST("/api/devices/32/action/setDrenchingMode", '{"args":["off"]}')

 

mais ça ne marche pas non plus, du moins pas en remplaçant la ligne hc2:put

Partager ce message


Lien à poster
Partager sur d’autres sites

je pense que c'est vraiment bloqué car meme en utilisant la méthode du Fake Device on ne peut pas modifier ce champ

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci ca fonctionne

j'avais pensé au json sur le device mais pas directement un fibaro:call

Partager ce message


Lien à poster
Partager sur d’autres sites

×