Aller au contenu

NODE-red en Fibaro


Recommended Posts

  • Réponses 59
  • Created
  • Dernière réponse

Top Posters In This Topic

il y a 9 minutes, Barelle a dit :

Je suppose que l'on devrait avoir le même résultat

on

 


{
    "oid":   "1.3.6.1.4.1.42505.9.2.2.3.0",
    "type":  "Integer",
    "value":  1
}

off

 


{
    "oid":  "1.3.6.1.4.1.42505.9.2.2.3.0",
    "type":  "Integer",
    "value": 0
 }

 

 concernant ça oui effectivement ça fonctionne 

Lien vers le commentaire
Partager sur d’autres sites

sans vouloir abusée 

 

je cherche à crée un gauge concernant la remontée d'information d'un module fibaro 

 

et crée un moyen d'activée notre bouton portail depuis fibaro 

 

 

Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

Pour la gauge, il faut savoir d'où viennent les données, est-ce Node-Red qui interroge périodiquement la HC2 ou est-ce la HC2 qui envoie les données vers Node-Red.

Pour activer le bouton, il faudra dans un VD ou une scène de la HC2 l'envoi des données vers Node-Red.

 

Cela pourrait ressembler au schéma ci-après dans le cas ou la HC2 est à l'initiative des échanges.

 

image.thumb.png.2ef38485fceb461aea8fb988e7caae85.png

Lien vers le commentaire
Partager sur d’autres sites

Pour compléter, voici un exemple de scène envoyant une donnée à la gauge, il ne reste qu'à l'adapter à tes besoins, notamment en changeant l'adresse du serveur Node-RED :

--[[
%% autostart
%% properties
%% events
%% globals
--]]

local urlNodeRed		= "http://192.168.0.26:1880/HC2/Data/ModuleX"; -- Node-RED serveur 
local HTTPClientTimeout = 15000;

function sendValueToNodeRed(payload)
	local nodeRed = net.HTTPClient();
	nodeRed:request(urlNodeRed, {
		options = {method = 'PUT', data = payload, headers = {["content-type"] = "text/plain"}, timeout = HTTPClientTimeout},
		success =
			function(response)
				fibaro:debug("sendValueToNodeRed>>>success, payload="..payload);
			end, 
		error = 
			function (err)
				fibaro:debug("sendValueToNodeRed>>>error:" .. err .. ", payload=" .. payload);
				if string.lower(err) == "operation cancelled" then
					HTTPClientTimeout = HTTPClientTimeout + 1000;
					fibaro:debug("sendValueToNodeRed>>>error:operation cancelled, increasing HTTPClientTimeout to " .. HTTPClientTimeout .. ", payload=" .. payload);
				else
					fibaro:debug("sendValueToNodeRed>>>error:" .. err .. ", payload=" .. payload);
				end
			end
		});
end -- sendValueToNodeRed

value = tostring(5);
sendValueToNodeRed(value); 

 

Lien vers le commentaire
Partager sur d’autres sites

bon pour fibaro je sature 

 

si non j'ai un petit truc a que je cherche a faire, activée le bouton avec un mot cle venant de télégramme

 

ça fonctionne a 80%, comment faire pour : si message banana alors activée msg.payload ("53=ON")

 

if (msg.payload === "banana") {
   return [ null, msg ];
} else {
   return [ msg, null ];
}

 

r7.JPG.b4b4b90b5a86bb340177998f313b31da.JPG

 

r8.JPG.238a1973fee6a2e04ec61ba86a4bb030.JPG

Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

C'est le nœud Input http, paramétré

r6.JPG

 

Peut-être :

if (msg.payload === "banana") {
	msg.payload = "53=ON";
   return [ null, msg ];
} else {
   return [ msg, null ];
}

Mais cela n'a rien avoir avec Node-red, c'est de la programmation  toute bébête...

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
Le 20/10/2019 à 04:32, Barelle a dit :

Pour compléter, voici un exemple de scène envoyant une donnée à la gauge, il ne reste qu'à l'adapter à tes besoins, notamment en changeant l'adresse du serveur Node-RED :


--[[
%% autostart
%% properties
%% events
%% globals
--]]

local urlNodeRed		= "http://192.168.0.26:1880/HC2/Data/ModuleX"; -- Node-RED serveur 
local HTTPClientTimeout = 15000;

function sendValueToNodeRed(payload)
	local nodeRed = net.HTTPClient();
	nodeRed:request(urlNodeRed, {
		options = {method = 'PUT', data = payload, headers = {["content-type"] = "text/plain"}, timeout = HTTPClientTimeout},
		success =
			function(response)
				fibaro:debug("sendValueToNodeRed>>>success, payload="..payload);
			end, 
		error = 
			function (err)
				fibaro:debug("sendValueToNodeRed>>>error:" .. err .. ", payload=" .. payload);
				if string.lower(err) == "operation cancelled" then
					HTTPClientTimeout = HTTPClientTimeout + 1000;
					fibaro:debug("sendValueToNodeRed>>>error:operation cancelled, increasing HTTPClientTimeout to " .. HTTPClientTimeout .. ", payload=" .. payload);
				else
					fibaro:debug("sendValueToNodeRed>>>error:" .. err .. ", payload=" .. payload);
				end
			end
		});
end -- sendValueToNodeRed

value = tostring(5);
sendValueToNodeRed(value); 

 

salut @Barelle

 

j'ai tester le code mai je comprend pas tout 

 

ça je comprends bien que c'est l'adresse du Raspberry ou fonctionne NODE-RED

http://192.168.0.26:1880/HC2/Data/ModuleX"; -- Node-RED serveur 

 

mai HC2/Data/ModuleX c'est quoi exactement

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites


×
×
  • Créer...