Aller au contenu

Messages recommandés

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

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

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

Posté(e)

Avec ce schéma cela fonctionne :

image.png.e06f12db5deee9714e0c9bfb184f60b2.png

 

Si après le changement d'état, aucun message n'est envoyé au bouton, il restera comme avant.

L'important est le retour de Off vers Portail N°x.

 

Posté(e) (modifié)

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

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

Posté(e)

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); 

 

Posté(e) (modifié)

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

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

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

 

 

 

 

Posté(e)

C'est un flux en entrée de Node-RED (il n'y a pas de connecteur à gauche) qui il figure bien dans les input. Il recevra des données envoyées par un ordre api.put par la HC2.


×
×
  • Créer...