-
Compteur de contenus
14 650 -
Inscription
-
Dernière visite
-
Jours gagnés
190
Tout ce qui a été posté par jojo
-
si tu as un doute par brapport au bon foncionnement du contact, dans ta dernière ligne tu fais juste une notification push , mais as-tu bien défini l'id de ton portable dans GEA.portables = {} Autre chose. : quand tu sauve ton GEA, il ne t'affiche pas d'erreur ?
- 12 263 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
oui il a deux relais avec les caractéristiques de charge 6,5A per channel for resistive load, but total current can not exceed 10A*
-
oui, ça fonctionnera, mais tu lanceras la scène GEA pour rien alors. Mieux vaut être raisonnable ...
- 12 263 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
ne ferais-tu pas un petit tuto avec le détail de ta solution, car sinon elle va se perdre dans les bas-fonds du forum tu ne dois plus rentrer tes credentials ?
-
le FGMS fait tout (présence, lumière, température) donc pas besoin du FGBS et de sa sonde de température. il te faudra prévoir également un FGS222 pour alimenter ton chauffage électrique en fonction de la scène que tu auras développée
-
@Sakkhho, Voici le code du bouton tout éteindre sans le double click ---------------------------------- -- User Settings ---------------------------------- -- Modules àexclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module toExclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- -- Modules àexclure ou inclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} function shouldExclude(module) for _, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local payload = "/api/devices" local response, status, errorCode = HC2:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then local jsonTable = json.decode(response) -- Boucle sur les modules for device = 1, #jsonTable do -- look for lighting devices if jsonTable[device].interfaces and not shouldExclude(jsonTable[device]) then for interface = 1, #jsonTable[device].interfaces do if jsonTable[device].interfaces[interface] == "light" then local DeviceValue = tonumber(jsonTable[device].properties.value) if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then --fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) --fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") end break end end end end else fibaro:debug('<span style="display:inline;color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..(response or "")..'</span>') end
-
quand je lis ce que tu as mis dans ton premier post, la commande GET n'est pas complète. Suis le tuto, qui devrait être bon que ce sois de la HCL vers la HCL ou vers ailleurs.
-
ok, pour les break je n'étais pas passé par notepad, juste fait enter dans l'éditeur Fibaro et l'un ou l'autre tab. Maintenant je sais que Fibaro génère des espace et pas des tabulations
-
encore une autre idée foireuse, (pour l'autre coin de ta tête), mais plus facile àmettre en oeuvre. Je viens de recevoir un mail comme quoi un device ne fonctionnait plus. Je suis allé solutionner le problème, et je voudrais facilement pouvoir confirmer que c'est ok. Donc ne pourrait-on pas rajouter dans le mail de notif de l'erreur l'url qui a été testées, ainsi il n'y aurait plus qu'àcliquer sur le lien du mail pour vérifier
- 228 réponses
-
la tabulation dans notepad++ est bonne, c'est dans le forum qu'il y a un stà»à»à»à»à»t avec les ctrlC/V. Je n'oserais pas présenter un code mal tabulé, sinon je sais que Lazer ne voudra plus me parler
-
NON, il y a déjà trop dans ton entête actuelle, il ne doit rester que les 3 devices que je t'ai dites,. mais dans ta variable local id ={ ...} il manque une entrée
- 12 263 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
mais dans le screenshot de ton VD, il montre que la valeur est à19,5 et pas 21 => le message push est cohérent selon moi
-
@sebcbien, sorry, je ne sais plus le break de qui, mais ça fonctionne ! @Sakkhho, En fait on a fait des modif pour le test de savoir si c'est une lampe ou pas, car la méthode actuelle ne sera plus supportée longtemps par Fibaro (dixit sebcbien), et pour que le VD précédent (v3.0) fonctionne, il faut faire un restart de la box après l'inclusion d'une lampe
-
le id ["Statut_Alarme"] n'existe pas dans la déclaration de tes id, mais bien dans ton GEA => il doit te faire une erreur de syntaxe.
- 12 263 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
d'après ton code, tu ne devrait avoir dans l'entête que 3 ID : 18, 173 et 202
- 12 263 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
no stress grand chef ! Je suis (mal) payé pour avoir des idées tordues
- 228 réponses
-
bent-u zeker u in Engels geschreven hebt ? Het is Nederlands ! Nevertheless be welcome, we do have an english section. In english you can expect support, but in dutch it will be difficult ...
-
voici donc le code et le VD suite aux optimisations de lazer concernant l'interruption de la boucle for et la prise en compte des modules à exclure. bouton Tout 2teindre ---------------------------------- -- User Settings ---------------------------------- -- Modules à exclure et fonction de traitement (pas raccordés à des lumières) -- Peut contenir un id ou un mot clés à chercher dans le nom du module toExclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- -- Modules à exclure ou inclure et fonction de traitement (pas raccordés à des lumières) -- Peut contenir un id ou un mot clés à chercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} function shouldExclude(module) for _, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end ---------------------------------- -- double click pour confirmer ---------------------------------- -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local label_id = "lblMessage" -- l'ID du label qui recevra le message local duree = 4 -- la durée max entre 2 clique (en seconde) local message = "Ré-appuyer dans les "..duree.." secondes pour confirmer" -- le message de confirmation if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- votre code ici en cas de confirmation -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local payload = "/api/devices" local response, status, errorCode = HC2:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then local jsonTable = json.decode(response) -- Boucle sur les modules for device = 1, #jsonTable do -- look for lighting devices if jsonTable[device].interfaces and not shouldExclude(jsonTable[device]) then for interface = 1, #jsonTable[device].interfaces do if jsonTable[device].interfaces[interface] == "light" then local DeviceValue = tonumber(jsonTable[device].properties.value) if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then --fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) --fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") fibaro:call(jsonTable[device].id, "turnOff") end break end end end end else fibaro:debug('<span style="display:inline;color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..(response or "")..'</span>') end else fibaro:log("Annulé") -- votre code ici en cas d'annulation end Bouton analyse ---------------------------------- -- User Settings ---------------------------------- IconeAllume = 47 IconeEteint = 48 -- Modules à exclure ou inclure et fonction de traitement (pas raccordés à des lumières) -- Peut contenir un id ou un mot clés à chercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} toExclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- local selfID = fibaro:getSelfId() local HC2 = Net.FHttp("127.0.0.1", 11111) -- Variable du compteur compteurLumieres = 0 -- clear labels for i = 1, 10 do fibaro:call(selfID, "setProperty", "ui.Lum" ..i.. ".value", "") end -- FUNCTIONS function debug(text, color) color = color or "white" fibaro:debug("<font color='"..color.."'>"..text.."</font>") end function shouldExclude(module) for _, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end -- END OF FUNCTIONS -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local payload = "/api/devices" local response, status, errorCode = HC2:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then local jsonTable = json.decode(response) -- Boucle sur les modules for device = 1, #jsonTable do -- look for lighting devices if jsonTable[device].interfaces and not shouldExclude(jsonTable[device]) then for interface = 1, #jsonTable[device].interfaces do if jsonTable[device].interfaces[interface] == "light" then local DeviceValue = tonumber(jsonTable[device].properties.value) if (DeviceValue and DeviceValue > 0) or (jsonTable[device].properties.value == "true") then --fibaro:debug(" id: "..jsonTable[device].id.." is "..jsonTable[device].name.." type: "..jsonTable[device].interfaces[interface]) --fibaro:debug(" value: "..jsonTable[device].properties.value..". Turning Off") compteurLumieres = compteurLumieres + 1 debug("lumière : " .. jsonTable[device].name .. " ("..jsonTable[device].id..")" ,"red") if compteurLumieres <= 10 then fibaro:call(selfID, "setProperty", "ui.Lum"..compteurLumieres..".value", jsonTable[device].name .. " ("..jsonTable[device].id..")") end end break end end end end else fibaro:debug('<span style="display:inline;color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..(response or "")..'</span>') end fibaro:call(selfID, "setProperty", "ui.lumieres.value", compteurLumieres) -- Mise à jour de l'icône debug(compteurLumieres.." lumière(s) allumée(s)", "green") if (compteurLumieres > 0)then fibaro:call(selfID, "setProperty", "currentIcon", IconeAllume) else fibaro:call(selfID, "setProperty", "currentIcon", IconeEteint) end main loop : ----------------------------------------------------------- -- Toutes lumières v2.0 -- http://www.domotique-fibaro.fr/index.php/topic/4251-voir-si-une-lumi%C3%A8re-est-allum%C3%A9e-et-tout-%C3%A9tindre/ ----------------------------------------------------------- -- Extinction de l'ensemble des lumières de la maison ----------------------------------------------------------- -- Changelog -- 4.3 (09/11/2015 - lazer/jojo) : breack dans loop for et check des toexclude() -- 4.2 (08/11/2015 - sebcbien/lazer/jojo) : inclus le test pour les dimers -- 4.0 (07/11/2015 - jojo) : test s'il s'agit d'une lumière via .interfaces -- 3.0 (04/09/2015 - jojo) : fin compatibilité 3.x -- affichage liste lumières allumées -- 2.0 : compatibilité v3.x - v 4.x -- + correction bug exclusion -- + affichage -- + double clik pour confirmer extinction globale -- 1.3 : Liste d'exclusion pouvant contenir des id de modules ou des mots clés dans les noms -- 1.2 : Correction du test d'état prenant en charge les -- modules variateurs et rétablissement de la -- condition pour l'exctinction -- 1.1 : Extinction inconditionnelle et prise en charge des -- modules variateurs ----------------------------------------------------------- ---------------------------------- -- User Settings ---------------------------------- ---------------------------------- -- DO not change bellow this line ---------------------------------- fibaro:debug("VD Toutes lumières") fibaro:call(fibaro:getSelfId(), "pressButton", "14") Toutes_Lumieres_v4.3.vfib
-
le bouton analyse est le même que le bouton tout éteindre, sauf qu'il n'éteint pas, mais affiche ...
-
tu peux alimenter un FGS, cela veut dire que tu as du 220V. Donc pour ton FGBS, tu peux trouver des alimentations en 12VDC pour 5€. Fait les tests au multimètre comme je te l'ai expliqué pour comprendre le cablâge, et ensuite on pourra voir comment raccorder les FGS et FGBS
-
@Nico, mprinfo, Je crois que je dois revoir ma méthode. J'ai un CD W7, et il doit d'abod installer tous les updattes avant de SP1, puis tous les update ... @Hansolo, J'avais vu celà , mais je ne voulais pas que MS me suiveille encore un peu plus ...
-
je savais pour mes idées tordues, c'est une déformation professionnelle. dans les dernière version du DeadNodeDicovery je fais qqch de similaire, avec une VG qui stocke les Dead Nodes -- chargement de la VD DeadNodes local DeadNodes = {} DeadNodes = fibaro:getGlobal("DeadNodes") if DeadNodes ~= "NaN" or DeadNodes ~= "" then DeadNodes = json.decode(DeadNodes) end if type(DeadNodes) ~= "table" then DeadNodes = {} end puis -- vérifier si noeud dans la table function InTable(Device) if DeadNodes["DV"..Device] == nil then return false else return true end end -- si node est dead/mort ... -- vérification si device est dans la table des noeuds morts if InTable(devID) == true then -- dans table -- vérification si > fréquence de notification if (DeadNodes["DV"..devID] + (FreqNotif*60*60)) < now ... else -- pas dans table DeadNodes["DV"..devID] = now ... -- sauvegarde de la table dans la VG DeadNodes = json.encode(DeadNodes) fibaro:setGlobal("DeadNodes", DeadNodes) isi j'y suis arrivé, tu peux sà»rement mieux que moi , et c'est que ce n'est pas si compliqué que ça ...
- 228 réponses
-
oui c'est possible, mais je ferais cela avec `GEA, c'est encore plus simple (1 ligne GEA). Lit ceci, il y a tout. Soit patient, il faut du temps pour en comprendre toutes les subtilités, mais une fois qu'on a le virus, c'est trop tard ... https://gea.piccand.me/doku.php
-
Lazer, Ce développement est vraiment génial ! Je n'ai pas encore utilisé les variables, mais il serait peu-être bon de préciser dans le premier topic qu'elles sont créées automatiquement, ce qui est géant, et à quoi on ne s'attend pas en tant que débutant. Il m'a déjà permis d'identifier qu'une caméra n'était plus connectée au réseau. Je me disais, je regarde ce soir. Et hop, elle est revenue. Quand ? Pourquoi ? ??? Je ne le saurai jamais. D'où l'idée de notifier quand un appareil revient ? J'ai fais un truc du genre dans le device DeadNodesAnalysis (il faudrait créer une VG avec le nom (et la date d'erreur du device, si on voulais pouvoir calculer depuis combien de temps il était en erreur))
- 228 réponses
-
Merci, je croyait que les codes étaient spécifiques à chaque site
- 228 réponses