971jmd Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 (modifié) Salut salut à tous j’ai une question je suis à la recherche d’une personne ayant une connaissance sur Node-Red j’aurai une interopérabilité avec FIBARO merci d’avance Modifié le 19 octobre 2019 par 971jmd
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 J'utilise Node-RED, mais ne lis pas de question...
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 (modifié) salut j'ai réalisée un petit code avec NODE-RED qui commande une carte relais ( http://denkovi.com/web-snmp-controlled-8-relay-board-daenetip2-v2 ) mai avant d'intégrée à avec les node fibaro je souhaite résoudre un problème. Dans mon Dashboard qui fonctionne bien, je souhaite quand j'active le port 2 ou 3 (relais 2 ou 3) je souhaite réalisée un auto OFF ( si ON alors OFF après 2 secondes) en gros réalisée une pulsion pour ouvrir mon portail ... le script : P.json Modifié le 19 octobre 2019 par 971jmd
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 et merci de l'aide que tu m'apportera, je découvre NODE-RED depuis une semaine seulement
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Bon, je ne comprends pas tout, surtout que je n'ai pas exploré les fonctions de dashboard : Déjà dans la fonction Port 2 : var tmp = (flow.get("tmpVar")) + 1; flow.set("tmpVar", tmp); var p53 = {payload:msg.payload.value === 0 ? "52=OFF" : "52=ON"} ///msg = {icon: '<font color = "white" i class="fa fa-book fa-2x"></i>'}; return [p52]; j'aurais plutôt vu un var p52 = ... ou alors un return [p53]... Ensuite, avec la fonction resend every 5s, le message sera envoyé toutes les 5 secondes, ce qui me parait curieux. Pour ma part, j'aurais plutôt prévu en sortie de la fonction Port 2, un lien direct vers Portail N° 1 et un second lien vers une fonction delay de 2 secondes dont la sortie est une fonction avec le code var msg1 = {}; msg1.payload = "52=OFF"; return msg1; La sortie de cette fonction étant reliée à l'entrée de portail N° 1. Cela répond-il à la question ? ou je n'ai vraiment rien compris...
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 (modifié) Fonction PORT3 var tmp = (flow.get("tmpVar")) + 1; flow.set("tmpVar", tmp); var p53 = {payload:msg.payload.value === 0 ? "52=OFF" : "52=ON"} return [p52]; SWITCHE P2 et la dernier fonction qui envoie l'ordre ON ou OFF if(flow.get("updatingNow1") === true) { flow.set("updatingNow1",false); return; } if(flow.get("updatingNow2") === true) { flow.set("updatingNow2",false); return; } msg.host = flow.get("host"); msg.community = flow.get("password"); msg.varbinds = [ { "oid": msg.payload.indexOf("53") != -1 ? "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("ON") != -1 ? 1 : 0 } ] return msg; pour le moment quand j'appuis sur le SWITCHE P3 (portail n°2) le relais passe ON et quand j'appuis de nouveau il passe à OFF. jusque la tout fonctionne nikel mai le problème est que pour un portail il me faut une impulsion. Donc quand j'appuie sur le SWITCHE P2 il faut que le relais passe à ON et 2 seconde après repasse a OFF automatiquement Modifié le 19 octobre 2019 par 971jmd
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 J'avais compris que le sujet concerne le Portail N° 1... Il me semble ne pas avoir été bien lu. Dans la fonction Port 2, il y a un return [p52]; or p52 n'y est pas défini. Donc j'ignore il y aura une erreur, par ailleurs je suppose que syntaxiquement, dans les fonctions p2 à p5 (celles de gauche), il faudrait écrire : var tmp = (flow.get("tmpVar")) + 1; flow.set("tmpVar", tmp); var msg1 = {}; msg1.payload = {payload:msg.payload.value === 0 ? "52=OFF" : "52=ON"} return msg1; Ci-après un script de test implémentant un timer de 2 secondes : test.json
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 su le principe c'est bon, mai je n'arrive pas a intégrée Lacommande if(flow.get("updatingNow1") === true) { flow.set("updatingNow1",false); return; } if(flow.get("updatingNow2") === true) { flow.set("updatingNow2",false); return; } msg.host = flow.get("host"); msg.community = flow.get("password"); msg.varbinds = [ { "oid": msg.payload.indexOf("53") != -1 ? "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("ON") != -1 ? 1 : 0 } ] return msg;
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 (modifié) normalement la commande est : SNMP "oid": msg.payload.indexOf("53") != -1 ? "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("ON") != -1 ? 1 : 0 je c'est que l'avant dernier chiffre représente le n° du relais "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0" Modifié le 19 octobre 2019 par 971jmd
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Le test msg.payload.indexOf("53") != -1 est inutile, les valeurs retournées sont identiques. Où est créé la variable msg.payload.indexOf ?
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 quand je le supprime: "TypeError: argument must be a Number"
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 pour le moment avec la configure suivante le relais clignote et démarre tout seul
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Ce que je veux dire c'est que le code "oid": "1.3.6.1.4.1.42505.9.2.2.3.0", produira le même effet, les deux valeurs sont égales quelle que soit le résultat du test msg.payload.indexOf("53") != -1
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 oui justement c'est ce que je ne comprend pas, pk 2 codes identique
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 faudrait arrivée a crée une fonction pour le ON et aune autre pour le OFF enfin je pense
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 (modifié) j'ai trouver comment crée une Fonc ON et OFF Modifié le 19 octobre 2019 par 971jmd
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 on { "oid": msg.payload.indexOf("ON") != -1 ? "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("ON") != -1 ? 1 : 0 } off { "oid": msg.payload.indexOf("ON") != -1 ? "1.3.6.1.4.1.42505.9.2.2.3.0" : "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("OFF") != -1 ? 1 : 0 }
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Cela devra revenir au même : on { "oid": "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("ON") != -1 ? 1 : 0 } off { "oid": "1.3.6.1.4.1.42505.9.2.2.3.0", "type": "Integer", "value": msg.payload.indexOf("OFF") != -1 ? 1 : 0 } Mais où est donc créé la variable msg.payload.indexOf ?
971jmd Posté(e) le 19 octobre 2019 Auteur Signaler Posté(e) le 19 octobre 2019 mai pour le moment quand je clique sur le bouton le relai passe à ON et OFF après 2 sec mai le bouton reste sur ON
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 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 }
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Avec le bouton X de test cela fonctionne t-il ?
Barelle Posté(e) le 19 octobre 2019 Signaler Posté(e) le 19 octobre 2019 Compare les paramètres du bouton.
Messages recommandés