Aller au contenu

Utiliser La Hc2 En Passerelle Rf Zwave Ou Récupérer Les Infos De Puissance Du Wallplug


Messages recommandés

Posté(e)

Oui je sais ça va en faire hurler quelques uns mais ayant pas mal d'équipement perso, je ne souhaite pas tout centraliser sur la HC2

J'ai une Zibase, un IPX des Arduinos , etc ... et je viens de switcher la gestion Z-Wave de la Zibase par la Fibaro.

Jusque la j'avais une application développée en C# sur un serveur PC pour intercepter tous les évenements de la zibase ( protocole chacon, zwave .. )

 

Depuis que j'ai switché tous mes périphériques Zwave sur la HC2, je dois rétablir le fonctionnement.

 

J'ai ainsi pour les détecteurs de présence crée un scénario + module virtuel pour faire une simple requête HTTP vers mon serveur ( au passage, bien galère de devoir créer un module virtuel pour envoyer la requête alors que la mettre dans le code LUA du scénario aurait été bien plus pratique, enfin Fibaro doit avoir ses contraintes techniques qui j'espère seront colmatées dans une V4 )
 

Par contre pour le Wallplug je récupérais avant les infos de puissances afin d'archiver le tout dans une base de données et tracer des graphes mais sauf erreur de ma part, je ne trouve pas comment chopper l'évènement dans un scénario. je veux qu'à  chaque changement de puissance ( enfin en suivant le paramétrage du plug biensur )  envoyer l'info vers mon serveur.

 

Quelqu'un l'a déjà  fait ?

 

il y a t'il un moyen pour chopper tous les évents du ZWave et les utiliser comme on peut le faire avec la Zibase ?

 

Merci par avance

 

 

 

Posté(e)

J'ai posté un peu vite mais si ça peut servir à  d'autres ..

 

on peut récupérer pas mal de paramètres alors avec un peu de lua, on peut récupérer les infos que j'aurai besoin.

plus qu'à  vérifier que le trigger se déclenchera sur des modifications de valeurs. je testerai plus tard et vous ferai un retour si cela intéresse du monde

--[[ 
%% properties 
5 valueSensor 
%% globals 
--]] 

local unit = 
{ 
  vardagsrum_tv_power = 5
} 

local startSource = fibaro:getSourceTrigger(); 
fibaro:debug("Triggertype: " .. startSource['type']); 

if ( (startSource["type"] == "property") or (startSource["type"] == "other")) then 

    -- Get power reading 
    local watt = tonumber(fibaro:getValue(unit.vardagsrum_tv_power, "valueSensor")); 
    fibaro:debug("Current power: " .. watt .. " watts"); 
end 
Posté(e)

Dans ton cas, je ferais cela.

 

1) Créer un module virtuel avec 1 slider et un bouton

2) Ton scénario (ci-dessus) va mettre à  jour le slider avec la valeur du sensor

3) Ton scénario appuie sur le bouton du module virtuel pour envoyé la valeur du slider sur ton serveur.

 

 

Scénario

--[[ 
%% properties 
%% globals 
5 valueSensor 
--]] 

-- Sensor
local vardagsrum_tv_power = 5

-- Module virtuel
local module_id = 78
local slider_id = "1"
local bouton_id = "2"

 -- Get power reading 
local watt = tonumber(fibaro:getValue(vardagsrum_tv_power, "valueSensor")); 
fibaro:debug("Current power: " .. watt .. " watts"); 

-- Gestion du module virtuel
fibaro:call(module_id, "setSlider", slider_id, watt);
fibaro:call(module_id, "pressButton", bouton_id);
Code derriere le bouton de ton module virtuel

-- récupération des watts
-- Attention au nom du slider
local watts = tonumber(fibaro:getValue(fibaro:getSelfId(), "ui.Slider1.value"))

-- on envoi sur le serveur
HC2 = Net.FHttp("<ip de ton serveur>")
response = HC2:GET("<url>" .. watts)
  • Upvote 1
Posté(e)

Je ne partais pas sur le principe de passer par un slider pour mémoriser l'info mais pourquoi pas, l'idée est bonne.

Je l'aurais mis dans une variable globale et je l'aurais récupéré dans le module virtuel.

 

Merci pour ton avis et le code qui servira je le pense à  bien d'autres.

 

Un peu frustré tout de même sur l'obligation de devoir faire une scène et un module virtuel. Ca encombre fortement l'interface inutilement.

Posté(e)

Quand on me parle de passerelle de suite, je bannis les variables globales car elles ne sont pas exploitables par l'extérieur alors que le slider sont manipulables :

 

http://<admin>:<password>@<ip hc2>/api/callAction?deviceID=<id module>&name=setSlider&arg1=<id slider>&arg2=<valeur>

Pour justement éviter d'avoir trop de modules et scénarios, j'ai justement un module "Passerelle" qui regroupe des sliders et boutons et ensuite, j'essaie de regrouper le tout dans un seul scénario.

  • Upvote 1
Posté(e)

Oui je comprends, après tout dépend de ce que tu as besoin de faire.
J'ai des activations/désactivation de push que je gère avec une Globale et que je fixe depuis l'extérieur via l'API
Moins je crée de modules virtuels, mieux c'est pour moi ^^

×
×
  • Créer...