Aller au contenu

lamparo

Membres confirmés
  • Compteur de contenus

    353
  • Inscription

  • Dernière visite

  • Jours gagnés

    4

Tout ce qui a été posté par lamparo

  1. Merci Gazous pour tes conseils. Grâce à toi je peux gérer mon PI via mon onduleur et la HC2. à bientôt sur le forum pour de nouvelles aventure JP
  2. Bonsoir, si tu ne mets pas d'interrupteurs, en cas de panne de ton module, tu ne pourras plus allumer tes lampadaires. Pour le cablage, tu as le schéma fourni avec le FGS, sauf que tu supprimes le double interrupteur.
  3. lamparo

    FGS 223 le relais se bloque

    Bonsoir à vous, j'ai rencontré ce problème sur une installation qui gère un pc, une console de jeux et une télé à LED. J'ai résolu le problème en installant un contacteur LEGRAND CX3 412501 que j'ai payé moins de 30€. Seul problème, je n'ai plus la remonté de conso, mais j'ai épargné mon FGS. C'est très bien détaillé dans les caractéristiques du module, mais nous avons trop souvent la flemme de tout lire avec des charges résistives comme des radiateurs, ballon d'eau chaude standard, four à convection naturelle ou à chaleur tournante, etc. : 6,5A (1560W env.) max. par sortie, 10A (2400W env.) max. au total. avec des ampoules incandescentes / halogènes 230V : 3,2A (768W env.) max. par sortie, 5A (1200W env.) max. au total*. avec des charges inductives comme des moteurs. / compresseurs : 1,6A (384W env.) max. par sortie, 2,5A (600W env.) max. au total**. avec des charges capacitives comme des appareils électroniques (TV, amplificateur, ordinateur), des moteurs/compresseurs avec "inverter", etc. : 0,8A (192W env.) max. par sortie, 1,25A (300W env.) max. au total**. * Estimation. ** Officiellement, les FGS223 ne doivent être utilisés qu'avec des charges résistives. Il s'agit ici d'une position sécuritaire de Fibaro visant à éviter les problèmes de relais "soudés" qui peuvent se produire avec des charges inductives et surtout capacitives (ce problème est courant sur de nombreux actionneurs / relais / contacteurs et ne concerne pas que les modules Fibaro). En effet, les charges inductives et surtout capacitives peuvent générer un appel de courant très élevé au moment de leur mise en marche (de 10 à 1000 fois leur puissance nominale mais durant seulement une fraction de secondes). Cela n'est réellement un problème que lorsque la charge se met en fonctionnement immédiatement lors de son alimentation et est beaucoup moins vrai dans les autres cas. Il est donc nécessaire, si l'on veut utiliser ces actionneurs avec des charges inductives ou capacitives, d'appliquer une marge de sécurité très élevée. Nous indiquons ici des valeurs qui conviennent généralement. Il est cependant important de noter que l'appel de courant à la mise en marche est extrêmement variable d'un appareil à l'autre et que les valeurs que nous donnons ici peuvent ne pas être suffisantes avec certains appareils dont la conception rend l'alimentation particulièrement "agressive". Nous vous recommandons donc d'être le plus large possible et de bien considérer que la prise en charge sous garantie pourrait ne être acceptée par Fibaro dans le cas où le module serait endommagé par un type de charge autre que résistive.
  4. Bonsoir, une question bête, comment puis je copier ces fichiers dans nano? JP Bon,j'ai tapé les lignes à la main. En fin de compte, comme je n'ai pas de télé à piloter, j'ai juste récupéré le reboot et shutdown du VD de Gazous, pour mon PI, que je remercie bien bas . Dans le shutdown il y a la ligne: while tonumber(fibaro:getValue(rpiPowerSwitchId, "power")) > 1 and cpt < 60 do fibaro:debug("Sleep 1 sec (cpt = "..cpt..")... RPI is Shunting down") Tu as connecté un switch à une des broches de ton Raspberry pour détecter son état? JP
  5. lamparo

    Onduleur Eaton

    Bonsoir à vous, mprinfo, as tu trouvé une solution pour les mails via free? Êtes vous parvenu à vous connecter au serveur pour mise à jour de la date et heure? je voudrais éteindre mon raspberry si la batterie de l'onduleur arrive au bout. je suis une tanche en LUA, j'ai pensé à un truc de ce genre: RPI = Net.FHttp("192.xxx.xx.xx", xx) RPI:GET("/cgi-bin/authLogin.cgi?user=xxxx&plain_pwd=xxxxx&remme=1") suivi d'un "sudo halt" mais je ne sais pas trop comment mettre en forme Si une âme charitable passe par ce sujet JP
  6. lamparo

    Onduleur Eaton

    Bonsoir à tous, voilà, j'ai terminé l'installation, tout fonctionne Merci pour les bouts de codes linux Laser. J'ai juste une (ou deux) questions, tu parles de fakes devices pour "DEVICE", tu veux parler d'un FGS ou capteur qui viendrait "prendre la puissance de sortie de l'onduleur? Si tu regardes l'imprime écran que j'ai joint, je n'ai rien dans tension, ça vient du fait que pour l'instant je n'ai rien raccordé en sortie de l'onduleur? dans ta capture d'écran, tu as un onglet "Tps Batterie", il n'apparaît pas dans le VD. En tout cas, comme nous disions dans l'armée, tu es un vrais "Bébert" Merci JP
  7. lamparo

    Onduleur Eaton

    Bonsoir à tous, j'ai enfin reçu ma carte, je l'ai configuré, jusque là c'est hyper simple. Sur les conseils de Lazer je décide d'installer Socat sur mon Pi. J'ai de Linux une expérience nulle de chez nulle. Je tappe la première cde: apt-get install socat et toc premier blocage, Putty affiche: à mon avis je n'ai pas les droits ADMIN, il faut certainement ajouter la cde "Root" quelque part......mais ou? Ensuite pour démarrer Socat, je pars de ce point du tuto? "Ensuite, il faut modifier le fichier /etc/rc.local afin d'ajouter le démarrage automatique de socat au boot de la machine, pour cela on peut utiliser l'éditeur nano, ou vi si vous avez une barbe naissante : nano /etc/rc.local Ajouter la ligne suivante à la fin du fichier, en prenant soin de remplacer l'adresse IP de destination par celle de l'onduleur (192.168.1.2 dans l'exemple) /usr/bin/nohup /usr/bin/socat TCP4-LISTEN:10035,fork UDP4:192.168.1.2:161 > /dev/null 2>&1 & Après avoir sauvegardé le fichier et quitté l'éditeur, il faut maintenant exécuter manuellement la commande comme suit, afin de démarrer immédiatement socat sans attendre le reboot (ne pas oublier de remplacer également l'adresse IP correcte) : root@fghc2:~# /usr/bin/nohup /usr/bin/socat TCP4-LISTEN:10035,fork UDP4:192.168.1.2:161 > /dev/null 2>&1 & Utiliser la commande netstat afin de vérifier que socat a bien démarré et écoute sur le port TCP 10035 : root@fghc2:~# netstat -an | awk '$1=="tcp" && $6=="LISTEN" {print $0}' | grep 10035 tcp 0 0 0.0.0.0:10035 0.0.0.0:* LISTEN Vérifier également que le processus socat fonctionne bien en tâche de fond : root@fghc2:~# ps -ef | grep socat root 8618 6253 0 15:24 pts/7 00:00:00 /usr/bin/socat TCP4-LISTEN:10035,fork UDP4:192.168.1.2:161 socat est prêt, on peut fermer la session SSH." par quelle commande je remplace "root@fghc2? Merci pour vos précieux conseils JP
  8. lamparo

    Onduleur Eaton

    Je vais fouiller pour le ROOT, sinon je me rabattrai sur le Pi. Je te ferai un retour lorsque tout sera fonctionnel, ou si j'ai un blocage ailleurs. En tout cas merci pour tout JP
  9. lamparo

    Onduleur Eaton

    Bonjour Laser, merci pour ta réponse. Le seul ROOT que je réalise à l'heure actuel concerne Androïd. Linux est un environnement un tantinet abscon pour moi. J'ai un Raspberry PI avec Domoticz d'installé dessus pour gérer mes volets roulants. D'après toi, puis je installer dessus Socat à l'aide de Putty sans mettre la grouille avec Domoticz? Toutefois, je pense que la meilleur solution est de l'installer sur la HC2, si mon Raspberry rend l'âme, je n'ai rien à ré-installer et tout est centralisé. J'ai jeté un coup d'oeil sur le net pour effectuer un ROOT Linux, pour un profane rien de bien simple, il y a divers distributions (Mandriva Mandrake, Debian, Archlinux, Frugalware, Fedora....) La quelle est la bonne sur la HC2 Pour tapper les lignes de cde, je me connecte comment à la box??? Désolé pour toutes ces questions, je parcoure souvent le forum et grâce à vous je progresse, mais là ça devient du grand Mendes :-) JP
  10. lamparo

    Onduleur Eaton

    Bonsoir à vous, après avoir eu une frayeur au niveau de mon NAS suite à plusieurs coupures de courant, je me suis décidé à installer un onduleur. Comme je ne suis que mécanicien et que fatalement mes connaissances informatiques sont assez limités, j'ai commandé exactement le même matériel que LAZER pour pouvoir m'appuyer sur son tuto. j'ai donc acquis un EATON 5P 850i et une carte réseau, que je reçois demain. Mon point bloquant, pour l'instant, est le Root de la HC2. Comment avoir l'info pour cette manip? Merci à vous JP
  11. lamparo

    Volet somfy RTS / fibaro

    Le RFXCOM fonctionne parfaitement, Comme il s'agit de la solution que j'utilise je ne peux que te remonter cette info. Le RFP1000 ajoute de nouvelles fonctions, il faut attendre le retour d'un membre du forum qui l'ai installé. À ta place, partant de zéro, j'opterai pour le RFP1000 et ferai profiter le site de mon expérience. Tu ne risques pas grand chose, au pire des cas tu le renvoies et te fais rembourser. JP
  12. lamparo

    Volet somfy RTS / fibaro

    Oui, Mitterrand demandait conseil à Elizabeth Teissier. Pendant les années 80, certains leurs prêtent une liaison. Elle l'aurait conseillé sur la guerre du Golfe, Maastricht, et bien d'autres choses. il faut savoir que beaucoup de grands dirigeants d'entreprise consultent aussi ce genre de personnes. ça fait un peu peur
  13. lamparo

    Volet somfy RTS / fibaro

    C'est une avancée par rapport au RFXcom, faute de mieux. Les chefs d'états on recourt aux voyants, ça fait peur quand même, alors juste un peu de voyance pour mes volets, ça m'irait bien JP
  14. lamparo

    Volet somfy RTS / fibaro

    Avoir un retour sur la commande "montée" ou "descente"
  15. lamparo

    Volet somfy RTS / fibaro

    Le plus simple est RFXcom+Raspberry Pi+Domoticz, il y a plein de tuto sur le net la dessus. Nico a piqué ma curiosité, je ne vois pas comment tu peux réaliser ceci
  16. lamparo

    Volet somfy RTS / fibaro

    Bonsoir, perso j'utilise le RFXcom pour gérer mes volets SOMFY. Mais ce RFP1000 me tente beaucoup. Nico, pour le rendre "compatible" avec notre HC2, utilise t'on la même configuration que le RFXcom, soit Raspberry Pi et Domoticz? JP
  17. Salut Cybersquat, super si tout fonctionne Le miens met, mini, 3 bonnes minutes avant d'être opérationnel, par contre, il s'éteint relativement vite, une petite minute. Jp
  18. Salut Pépite, un tuto, je peux mettre les codes relatifs aux boutons du VD, comme ça tout sera centralisé sur ce post, je tiens encore à signaler que j'ai tout glané sur le forum. Pour démarrer le QNAP --[[ %% properties %% globals --]] -- Wake On Lan v 1.0.0 [02-2013] -- Copyright © 2013 Jean-christophe Vermandé -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits) function convertMacAddress(address) local s = string.gsub(address, ":", ""); local x = ""; -- will contain converted MAC for i=1, 12, 2 do x = x .. string.char(tonumber(string.sub(s, i, i+1), 16)); end return x; end fibaro:log("Start process"); local _selfId = fibaro:getSelfId(); -- MAC adress local _macAddress = convertMacAddress(":xx:xx:xx:xx:xx:xx"); -- Create Magic Packet 6 x FF local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff); -- Broadcast Address local _broadcastAddress = "255.255.255.255"; -- Default port used local _wakeOnLanPort = 9; fibaro:sleep(750); for i = 1, 16 do _magicPacket = _magicPacket .. _macAddress; end fibaro:log("Magic packet successfully created"); fibaro:sleep(1000); socket = Net.FUdpSocket(); socket:setBroadcast(true); local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort); --check for error if errorCode == 0 then fibaro:log("Successfully sent"); else fibaro:log("Transfer failed"); end -- clean up memory socket = nil; fibaro:sleep(1000); fibaro:log("Please wait for the server startup."); Pour le ping --[[ %% properties %% globals --]] -- Ping v 1.0.1 [05-2013] -- Copyright © 2013 Jean-christophe Vermandé fibaro:log("Start process"); local _deviceIp = "xxx.xxx.x.x"; local _devicePort = xxxx; local _maxRetryProcess = 5; -- recursive function to ping device local function _ping(retry) retry = retry or 0; --open the socket local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort); --set the read timeout tcpSocket:setReadTimeout(250); --notify user fibaro:log("Search on the local network, try #" .. retry .. " please wait..."); fibaro:sleep(250); --send packet local bytes, errorCode = tcpSocket:write("test"); --check for error if errorCode == 0 then return true; else if retry < _maxRetryProcess then fibaro:log("Retry process, please wait..."); fibaro:sleep(1000); return _ping(retry + 1); end return false; end end --ping device, secure with pcall to catch errors. local f, result = pcall(_ping); if (f) then if (result == true) then fibaro:call(4, "sendPush", "QnaP On") --fibaro:log("Device has been found, is awake and listening."); else fibaro:call(4, "sendPush", "QnaP Off") --fibaro:log("Device was not found!"); end else fibaro:log("Error: " .. result); end Et le VD
  19. Bonsoir à vous, je remonte ce sujet car j'aimerai afficher dans l'étiquette d'un VD, la valeur de consommation d'un FGS223. Je récupère la valeur via le json, mais je ne sais pas si c'est possible d'afficher la valeur récupérée via l'étiquette, en la renommant par exemple. A la place de "consommation", je voudrais afficher la valeur récupérée via json.
  20. Salut Pépite, oui j'arrive à le démarrer, l'arrêter et envoyer un ping dessus pour voir son état J'ai passé du temps à fouiller sur le forum, c'est grâce à tous les béberts du site que j'y suis arrivé, un grand merci à vous tous. JP
  21. J'ai réussi en supprimant les variables du début du code et entrant directement l'adresse IP et le port. Recopie dans ton VD le code ci-dessous (en renseignant ton IP, port, login et password, ça devrait fonctionner. if (not QNAP) then QNAP = {} QNAP.globalvariable = "" -- -------------------------------------------------------------------------------------------------------------- -- Obtient le XML et le retourne sous forme de table LUA -- -------------------------------------------------------------------------------------------------------------- QNAP.getTokenFromXml = function() --local QNAP2URL = Net.FHttp(ip,port); local QNAP2URL = Net.FHttp("xxx.xxx.x.x", xxxx); response = QNAP2URL:GET("/cgi-bin/authLogin.cgi?user=login&plain_pwd=password&remme=1"); xmlTable = QNAP.iif(response ~= nil, QNAP.newParser().ParseXmlText(response), ""); if (xmlTable.QDocRoot ~= nil) then qsidstr = xmlTable.QDocRoot.authSid:value(); if (string.len(qsidstr)>0) then fibaro:debug("Qtoken founded"); qsidstr = qsidstr:gsub("[".."<![CDATA[".."]", ''); qsidstr = qsidstr:gsub("[".."]".."]", ''); qsidstr = qsidstr:gsub("["..">".."]", ''); fibaro:debug(qsidstr); response = QNAP2URL:GET("/cgi-bin/sys/sysRequest.cgi?subfunc=power_mgmt&count=0.1234&sid="..qsidstr.."&apply=shutdown"); if (string.find(response, "OK")) then fibaro:log("Power Off Server") else fibaro:log("ERROR") end end end end -- ------------------------------------------------------------------------------------------------------------- -- Teste la condition et retourne la valeur true ou false -- ------------------------------------------------------------------------------------------------------------- QNAP.iif = function(condition, iftrue, iffalse) if (condition) then return iftrue end return iffalse end -- ------------------------------------------------------------------------------------------------------------- -- Ceci est une version modifiée par Steven de Corona-XML-Module par Jonathan Beebe qui a son tour -- est basée sur Alexander Makeev's Lua-only XML parser . -- see https://github.com/Cluain/Lua-Simple-XML-Parser -- ------------------------------------------------------------------------------------------------------------- QNAP.newParser = function() parseXml = {} parseXml.FromXmlString = function(value) value = string.gsub(value, "([%x]+)%;", function(h) return string.char(tonumber(h, 16)) end); value = string.gsub(value, "([0-9]+)%;", function(h) return string.char(tonumber(h, 10)) end); value = string.gsub(value, "'", "'"); value = string.gsub(value, ">", ">"); value = string.gsub(value, "<", "<"); value = string.gsub(value, "&", "&"); return value; end parseXml.ParseArgs = function(node, s) string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a) node:addProperty(w, parseXml.FromXmlString(a)) end) end parseXml.ParseXmlText = function(xmlText) local stack = {} local top = parseXml.newNode() table.insert(stack, top) local ni, c, label, xarg, empty local i, j = 1, 1 while true do ni, j, c, label, xarg, empty = string.find(xmlText, "<(%/?)([%w_:]+)(.-)(%/?)>", i) if not ni then break end local text = string.sub(xmlText, i, ni - 1); if not string.find(text, "^%s*$") then local lVal = (top:value() or "") .. parseXml.FromXmlString(text) stack[#stack]:setValue(lVal) end if empty == "/" then -- empty element tag local lNode = parseXml.newNode(label) parseXml.ParseArgs(lNode, xarg) top:addChild(lNode) elseif c == "" then -- start tag local lNode = parseXml.newNode(label) parseXml.ParseArgs(lNode, xarg) table.insert(stack, lNode) top = lNode else -- end tag local toclose = table.remove(stack) -- remove top top = stack[#stack] if #stack < 1 then error("XmlParser: nothing to close with " .. label) end if toclose:name() ~= label then error("XmlParser: trying to close " .. toclose.name .. " with " .. label) end top:addChild(toclose) end i = j + 1 end local text = string.sub(xmlText, i); if #stack > 1 then error("XmlParser: unclosed " .. stack[#stack]:name()) end return top end parseXml.newNode = function(name) local node = {} node.___value = nil node.___name = name node.___children = {} node.___props = {} function node:value() return self.___value end function node:setValue(val) self.___value = val end function node:name() return self.___name end function node:setName(name) self.___name = name end function node:children() return self.___children end function node:numChildren() return #self.___children end function node:addChild(child) if self[child:name()] ~= nil then if type(self[child:name()].name) == "function" then local tempTable = {} table.insert(tempTable, self[child:name()]) self[child:name()] = tempTable end table.insert(self[child:name()], child) else self[child:name()] = child end table.insert(self.___children, child) end function node:properties() return self.___props end function node:numProperties() return #self.___props end function node:addProperty(name, value) local lName = "@" .. name if self[lName] ~= nil then if type(self[lName]) == "string" then local tempTable = {} table.insert(tempTable, self[lName]) self[lName] = tempTable end table.insert(self[lName], value) else self[lName] = value end table.insert(self.___props, { name = name, value = self[name] }) end return node end return parseXml; end end QNAP.getTokenFromXml(); @+ JP
  22. Bonsoir à vous, je suis toujours sur ma tentative d'arret de mon QNAP par un VD. J'ai mis des debug pour voir un peu ou va le programme. Lorsque je fais un débogue, je lis le 1 et le 7. ça saute donc dès le if (xmlTable.QDocRoot ~= nil) then . Je ne comprends pas bien ce code un peu abscons. Qu'est ce qui empêche de satisfaire la condition? Si un cador peu me dépanner, que je me couche, ou meurs moins bête JP
  23. -- on extrait l'heure et minute (%d+) est un digit local heure, minute = string.match(NomDate, "(%d+):(%d+)") -- On récupère l'heure et date actuelle sous forme de tableau Alors là c'est trop fort, j'utilise ce code depuis 6 mois dans mes scènes d'alarme et volets roulants et aucun problème, la cerise sur le pompon est que le code que j'ai est correct alors que je n'ai fait que recopier cette partie du programme dans l'éditeur de HC2 TOOLKIT
  24. Salut Pepite, j'ai rien trouvé sur Google, je suis allé poser la question sur le site de labomatik, je verrai bien si j'arrive à me dépatouiller. j'ai mis des débug pour voir ou il va, il ne rentre pas dans la boucle: if (xmlTable.QDocRoot ~= nil) then qsidstr = xmlTable.QDocRoot.authSid:value() Je ne comprends pas cette fonction, alors je bloque grave.
  25. if (not QNAP) then QNAP = {} QNAP.qnap_ip = fibaro:get(fibaro:getSelfId(), "IPAddress"); QNAP.port = fibaro:get(fibaro:getSelfId(), "TCPPort"); QNAP.globalvariable = "" -- -------------------------------------------------------------------------------------------------------------- -- Obtient le XML et le retourne sous forme de table LUA -- -------------------------------------------------------------------------------------------------------------- QNAP.getTokenFromXml = function() local QNAP2URL = Net.FHttp(QNAP.qnap_ip,QNAP.port); response = QNAP2URL:GET("/cgi-bin/authLogin.cgi?user=LOGIN_NAS&plain_pwd=PASSWORD_NAS&remme=1"); xmlTable = QNAP.iif(response ~= nil, QNAP.newParser().ParseXmlText(response), ""); if (xmlTable.QDocRoot ~= nil) then qsidstr = xmlTable.QDocRoot.authSid:value(); if (string.len(qsidstr)>0) then fibaro:debug("Qtoken founded"); qsidstr = qsidstr:gsub("[".."<![CDATA[".."]", ''); qsidstr = qsidstr:gsub("[".."]".."]", ''); qsidstr = qsidstr:gsub("["..">".."]", ''); fibaro:debug(qsidstr); response = QNAP2URL:GET("/cgi-bin/sys/sysRequest.cgi?subfunc=power_mgmt&count=0.1234&sid="..qsidstr.."&apply=shutdown"); if (string.find(response, "OK")) then fibaro:log("Power Off Server") else fibaro:log("ERROR") end end end end -- ------------------------------------------------------------------------------------------------------------- -- Teste la condition et retourne la valeur true ou false -- ------------------------------------------------------------------------------------------------------------- QNAP.iif = function(condition, iftrue, iffalse) if (condition) then return iftrue end return iffalse end Bonsoir à vous, j'ai utilisé le code de @Krikroff pour démarrer mon QNAP à distance et cela fonctionne parfaitement. Je cherche maintenant à l'éteindre, pour cela j'ai inséré le code ci-dessus dans mon VD, mais..nada, ça ne fonctionne pas. Quand je le passe dans le débug RAS (enfin si, il manque un "end" à la fin). Si quelqu'un a une piste. Merci à vous. JP
×
×
  • Créer...