Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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
Posté(e)

 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"}




			
		
Posté(e)

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....

Posté(e)

 @mikael2235,

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

Posté(e)

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)

Posté(e)

 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é?

Posté(e)

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 !

  • 1 mois après...
Posté(e)

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

Posté(e)

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

  • 3 mois après...
  • 7 mois après...
Posté(e)

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 
  • 4 semaines après...
Posté(e)

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?

Posté(e)

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")
Posté(e)

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?

  • 3 semaines après...
Posté(e)

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

Posté(e)

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

Posté(e)

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
×
×
  • Créer...