Aller au contenu

Fibaro - Module Volet Roulant "roller Shutter 2" Fgrm-221/fgrm-222


Moicphil

Messages recommandés

En fait sur la doc c'est écrit, mais cela suppose déjà  un bon niveau de connaissance des classes/fonctionnement Zwave:
 

Fibaro Roller Shutter uses the Protection Command Class v2 to
prevent from unintended motor movement. 22.22 software version
supports the following operation modes (following the Z-Wave
protocol description).
1) Local Protection
Local Protection State:
0 - no protection. Roller Shutter responds to push buttons.
1 - not supported
2 - Local protection active. Roller Shutter does not respond to
push buttons.

 

 

Ce qu'il faudrait c'est qu'au niveau du HC2, il y ait une fonction lua qui permette d'envoyer des commande comme sur VeraLite

 

En lien, la vidéo démo que cela fonctionne. Mes 2 scènes utilisent le code écrit plus haut. Désolé pour les talents de mise en scène, c'est un film à  petit budget :D

 

Lien Vidéo: https://www.youtube.com/watch?v=aivTfoPyUaM

 

 

Nicolas

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

mprinfo OK j'avais pas compris ça comme ça ;) Bon OK ta solution doit fonctionner, mais toutes les bidouilles (trigger, while, FGS) c'est pas très propre au final.

 

Si on arrive à  récupérer l'API pour modifier le paramètre n°1 du FGRM, c'est LA  solution à  utiliser pour mikael2235.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

En fait au niveau de l'API il semble que ce soit le parametre "protectionLocal". J'arrive à  le modifier via un virtual device qui post un json, la requète semble aboutir (avec le toolkit je vois bien le paramètre changer), mais ce n'est pas pris en compte... Il me manque la simulation du SAVE pour envoyer au module; En fait cela modifie la base de donnée mais c'est tout

 

J'ai repris un bout de code à  toi @laser ( http://www.domotique-fibaro.fr/index.php/topic/1373-fixer-la-valeur-dun-dimmer/#entry52260)

deviceID=365

local json = '{"id":'..deviceID..',"properties":{"protectionLocal": "2"}}'; -- valeurs à  changer dans parametres
local HC2 = Net.FHttp("127.0.0.1", 11111)
local response, status, errorCode = HC2:PUT("/api/devices?id="..deviceID, json)
if tonumber(status) == 200 then
fibaro:debug("Security locked")
else
fibaro:debug("err ID: "..deviceID.. " status: "..status)
end

Il faudrait voir si en V4 l'api permet plus de choses concernant les actions

 

 

EDIT: J'ai modifié le code pour envoyer en plus la modification d'un "paramètre standard" style type de bouton et là  c'est pris en compte immédiatement, pour le paramètre mais pas pour la protection donc il y a un truc que je ne pige pas <_<

'{"id":'..deviceID..',"properties":{"protectionLocal": "2","parameters":[{"id": 14,"size": 1,"value": 1}]}}'

Nicolas

Lien vers le commentaire
Partager sur d’autres sites

@mikael: Le sujet m’intéresse car j'aimerai pourvoir désactiver les commandes locales lorsque je suis absent. Je m'explique:

 

Mes boutons sont des bistables. Dans le cas où la dernière commande locale effectuée est la montée, le bouton reste appuyé sur le haut. Lorsque je pars j'active l'alarme qui déclenche la fermeture de tous mes volets. Si une coupure EDF apparait, lors de la remise sous tension, le bouton étant sur le haut, il y aura une impulsion sur le module et là  ouverture du VR..... C'est arrivé une ou 2 fois et je pense qu'accéder à  ces fonctions aiderait bien dans mon cas ;)

 

Il y a aussi d'autre solution comme évoquées plus tôt ou alors via GEA commander une fermeture sur retour secteur, mais comme la fonctionnalité existe il serait mieux de l'utiliser

 

Nicolas

Lien vers le commentaire
Partager sur d’autres sites

Je pense que je l'ai !

 

Via l'API, la configuration de la protection des boutons du volet roulant  ne passe pas via un PUT, du JSON, et la paramètre protectionLocal comme tu le pensais Nikko.

 

Mais avec un simple GET :

http://<IP>/api/callAction?deviceID=86&name=setProtectionLocalAndRF&arg1=0&arg2=0
http://<IP>/api/callAction?deviceID=86&name=setProtectionLocalAndRF&arg1=2&arg2=0

Dans cet exemple, il faut donc remplacer <IP> par l'adresse IP de la box, et 86 par l'ID de votre module FGRM.

Le paramètre arg1 commande le paramètre n°1 du module, donc la protection des boutons désirée, et prend les valeurs 0 ou 2 conformément à  la documentation.

 

 

Code LUA à  venir tout à  l'heure :)

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Voilà , ça fonctionne en v3, à  copier dans 2 boutons différents d'un module virtuel en modifiant juste la variable mode à  "on" ou "off" :

local mode = "on" -- Changer le mode on/off pour chaque bouton de module virtuel
local id = 86     -- ID du FGRM à  modifier

local protection = {
	["on"] = "0",
	["off"] = "2"
}
local HC2 = Net.FHttp("127.0.0.1", 11111)
payload = "/api/callAction?deviceID=" .. id .. "&name=setProtectionLocalAndRF&arg1=" .. protection[mode] .. "&arg2=0"
response, status, errorCode = HC2:GET(payload)
if tonumber(status) == 202 then
	fibaro:debug('OK')
else
	fibaro:debug('<span style="color:red;">Erreur : status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'</span>')
end

.

 

Je vous laisse tester en v4 :D

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

c'est pas documenté ce genre de choses.

 

je peux même pas faire du reverse enginering si y'a pas de bouton dans l'interface Web.

 

je suis en train de penser, puisqu'au début des premières v4, Fibaro avait supprimé le bouton calibration avant de le remettre, c'est peut être pareil avec les boutons de protection.

Auquel cas il faudrait accélérer les choses en leur demandant de la remettre..... je vous laisse ouvrir un ticket sur le bugtracker.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...