Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 650
  • Inscription

  • Dernière visite

  • Jours gagnés

    190

Tout ce qui a été posté par jojo

  1. PITP2, Toutes les info, et le code, d'un VD sont stockées dans le json du device. <ip box>/api/devices/<id VD> Donc si tu es un pro du json, tu pourrais changer le code d'un VD àl'aide d'une scène ou d'un autre VD ... Ca ouvre des portes ... (en théorie) { "id": 329, "name": "My Batteries", "roomID": 16, "type": "virtual_device", "visible": true, "enabled": true, "properties": { "deviceIcon": 1, "ip": "\"\"", "port": 1, "currentIcon": "1086", "log": "", "logTemp": "", "mainLoop": "---------------------------------------------------------------------------------------------\n-- OBJECTIF\n-- Ce VD vérifie le niveau de charge des piles\n-- les devices sont classés du plus faible au plus chargé\n-- L'icône affichée dédend du niveau de charge de la pile la plus faible\n-- Fréquence de vérification : nbr d'heures rentrées dans le champ TCP Port du VD\n-- un label indique le moment de la dernière vérification\n--\n-- FIRMWARE\n-- v3.x, v4.x\n-- http://www.domotique-fibaro.fr/index.php/topic/3896-my-batteries/\n--\n-- HISTORIQUE\n-- v5.0 (xx/xx/2015 - jojo) : fin compatibilité 4.x\n-- v4.5 (29/04/2015 - Jojo&Steven) : battery level = 255 en v4.x\n-- v4.4 (28/02/2015 - Jojo) : bug v4.x doublons maitre/esclave\n-- v4.3 (27/02/2015 - Jojo) : bug doublons en v4.x\n-- v4.2 (26/02/2015 - Jojo) : correction bug dans code pour v4.x\n-- v4.0 (25/02/2015 - Jojo) : Détection automatique v3.x ou 4.x\n-- v3.2 (24/02/1015 - Jojo) : bug affichage si nbr de device diminue\n-- v3.1 (21/02/2015 - Jojo) : intervalle de vérification àentrer dans le champ TVP Port du VD\n-- ajout champ avec date de la dernière vérification\n-- v3.0 (20/02/2015 - Jojo) : 5 icônes en fonction de 5 niveaux de charge, ne pas tester\n-- les devices morts\n-- v2.0 (16/02/2015 - Jojo) : changement icône si 1 pile sous un certain seuil de charge\n-- v1.0 (12/08/2014 - Steven) : module créé initialement par Steven\n----------------------------------------------------------------------------------------------\n\n----------------------------------\n-- User Settings\n----------------------------------\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n\nlocal nbHeure = fibaro:get(fibaro:getSelfId(),\"TCPPort\")\nnbHeure = tonumber(nbHeure)\nfibaro:debug(\"Start script\")\nlocal i = 0\nwhile true do\n\tif (i >= (nbHeure*2) or i == 0) then\n \ti = 0\n\t\tfibaro:call(fibaro:getSelfId(), \"pressButton\", \"11\")\n\tend\n\tfibaro:sleep(30*60*1000)\n \ti = i + 1\nend\nfibaro:debug(\"End battery check\")", "saveLogs": "1", "ui.Label1.value": "Lux_HallNuit_SdB (332)...33%", "ui.Label10.value": "Tmp_SdBRez (342)...100%", "ui.Label2.value": "Porte_Couliss (643)...44%", "ui.Label3.value": "Vanne_SècheServiette (241)...71%", "ui.Label4.value": "Vanne_Bureau (179)...77%", "ui.Label5.value": "Vanne_SècheServiette (177)...78%", "ui.Label6.value": "Porte_CaveAVin (277)...83%", "ui.Label7.value": "Vanne_Radiateur (367)...86%", "ui.Label8.value": "Porte_Entrée (645)...88%", "ui.Label9.value": "Mvt_TerrPar (353)...100%", "ui.LastCheck.value": "06/09/15 13:37", "rows": [ { "type": "label", "elements": [ { "id": 1, "lua": false, "waitForResponse": false, "caption": "", "name": "Label1", "favourite": false, "main": true } ] }, { "type": "label", "elements": [ { "id": 2, "lua": false, "waitForResponse": false, "caption": "", "name": "Label2", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 3, "lua": false, "waitForResponse": false, "caption": "", "name": "Label3", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 4, "lua": false, "waitForResponse": false, "caption": "", "name": "Label4", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 5, "lua": false, "waitForResponse": false, "caption": "", "name": "Label5", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 6, "lua": false, "waitForResponse": false, "caption": "", "name": "Label6", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 7, "lua": false, "waitForResponse": false, "caption": "", "name": "Label7", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 8, "lua": false, "waitForResponse": false, "caption": "", "name": "Label8", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 9, "lua": false, "waitForResponse": false, "caption": "", "name": "Label9", "favourite": false, "main": false } ] }, { "type": "label", "elements": [ { "id": 10, "lua": false, "waitForResponse": false, "caption": "", "name": "Label10", "favourite": false, "main": false } ] }, { "type": "button", "elements": [ { "id": 11, "lua": true, "waitForResponse": false, "caption": "Batteries", "name": "Button11", "empty": false, "msg": "----------------------------------\n-- User Settings\n----------------------------------\n-- icones pour 0, 25, 50, 75 & 100 %\nlocal iconebatt = {1084,1085,1086,1087,1088}\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\nlocal modules = {}\nlocal batt -- charge de la batt\nlocal battmin = 100 -- % charge de la batterie chargée au min\n\nHC2 = Net.FHttp(\"127.0.0.1\",11111)\n\n-- memorise LastCheck time\nlocal LastCheck = os.date(\"%d/%m/%y %H:%M\")\n\n-- clear labels\nfor i = 1, 10 do\n fibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.Label\" ..i.. \".value\", \"\")\nend\n\n---------------\n--FUNCTIONS\n---------------\nfunction exclude(name)\n return name == \"Main_Zwave_Device\" or name == \"Seismomètre\" or name == \"Luminosité\"\nend\n\n---------------\n--END FUNCTIONS\n---------------\nlocal parentIds = {}\nlocal uniqueParentId = true\nlocal response = HC2:GET(\"/api/devices\")\nlocal json = json.decode(response)\n \nfor k, v in ipairs(json) do\n if (type(v.properties.batteryLevel) == \"number\") then\n if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) \n then\n\t parentIds[v.parentId] = true\n batt = tonumber(v.properties.batteryLevel)\n if batt == 255 then batt = 0 end\n if (batt < battmin) then battmin = batt end\n \ttable.insert(modules, {batt, v.name .. \" (\" .. v.id .. \")\"})\n end -- if exclude\n end -- if batteryLevel\nend -- for\n\n-- sort table\nfunction comp(w1,w2)\n\treturn tonumber(w1[1]) < tonumber(w2[1])\nend\ntable.sort(modules,comp)\n\n-- display labels\nif string.len(modules[1][2]) >= 29 then\n modules[1][2] = string.sub(modules[1][2], 1, 28)\nend\nfor index, value in ipairs(modules) do\n \tpcall( function() \n\t\tfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.Label\"..index..\".value\", value[2].. \"...\" .. value[1] .. \"%\")\n \tend\n \t)\nend\n\n-- display LastCheck\nfibaro:debug(LastCheck)\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.LastCheck.value\", LastCheck)\n\n-- display Icon\nbattmin = math.floor((battmin - 1)/25) + 2\n\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"currentIcon\", iconebatt[battmin])\n", "buttonIcon": 0, "favourite": false, "main": true } ] }, { "type": "label", "elements": [ { "id": 12, "lua": false, "waitForResponse": false, "caption": "Last Check :", "name": "LastCheck", "favourite": false, "main": false } ] } ] }, "actions": { "pressButton": 1, "setSlider": 2 }, "created": 1441330575, "modified": 1441330575, "sortOrder": 122 }
  2. merci, mais je ne comprend pas l'utilité de ce paramètre ? Il définirait la marque de la box ?
  3. allé, félicitationss, et comme c'est parti, vous gagnerai peut-être également la 3° mi-temps
  4. s'il y a de la bière, pourquoi pas ?
  5. http://www.domotique-fibaro.fr/index.php/topic/5462-hcl-migrer-vers-hc2/
  6. allé l'Ecosse !! EDIT : heu, on est sur un site français. Allé la FRANCE !
  7. @sakkhho, Je te confirme que le double click fonctionne sans soucis depuis les mobile @pepite, tu teste depuis GEA et tu nous dis quoi ?
  8. keepass pour stocker les identifiants de manière sûre
  9. @flacon030 : tu viens d'éditer ton post, mais que le "display", l'url fonctionne toujours lorsque tu cliques sur le lien => éditer également le lien
  10. C'était ton message de poisson d'avril ?
  11. @sakkhho, Je comprends maintenant pourquoi tu ne voulais pas du double click. Je me demandais justement dans GEA comment il réagirait. Idée, dans GEA on pourrait mettre 2 fois de suite l'appel à ce bouton de la VD dans les options, ce qui correspond à un double click ? @pepite, Oui ça clignote (uniquement si toutes les lumières sont éteintes) car la main loop appelle un bouton. Je devrais regarder pour tout mettre dans la main loop. => à ajouter à la todo
  12. 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 = {} toInclude = {} ---------------------------------- -- 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 k, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end function shouldInclude(module) for k, v in pairs(toInclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end HC2 = Net.FHttp("127.0.0.1",11111) 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 -- Récupération de la liste des modules response = HC2:GET("/api/devices") json = json.decode(response) -- Boucle sur les modules for k, v in ipairs(json) do if ((type(v.properties.isLight) == "string" and type(v.properties.value) == "string") or shouldInclude(v)) and not shouldExclude(v) then if v.properties.value == "true" then fibaro:call(v.id, "turnOff") elseif v.properties.value ~= nil and v.properties.value ~="false" then if tonumber(v.properties.value) > 0 then fibaro:call(v.id, "turnOff") end end end end -- for
  13. jojo

    Gateway Sms Autonome

  14. non, le fibaro:getSourceTrigger est utile si tu veux connaitre l'origine du démarrage de la scène
  15. le meilleur verdict, est est-ce que ça fonctionne ou pas ? Je t'avoue ne pas avoir essayer de comprendre toutes la logique que tu as mise en place (pas fait de rétro-engineering). Maintenant de ce que j'ai lu, c'est propre et clair. Peut-être une petite remarque pour encore plus de lisibilité. assigne pour chaque device une variable locale au début, comme ça en plus si tu veux partager ton code ou que l'id d'un d"vice change, c'est plus simple
  16. et pourquoi pas en GEA ? => 2 lignes GEA.add ({id["détecteur_mvt"], {"Value-", id["lix"], 10}}, -1, "Allumer lumière", {{"Time", "18:00", "07:00"}, {"turnOn",id["Lampe"]}}) GEA.add (id["détecteur_mvt"], 1*60, "Eteindre lampe car pas mouvement depuis #duration#", {{"Inverse"}, {"turnOff", id["Lampe]}})
  17. jojo

    Gateway Sms Autonome

    ok, si ça ne fonctionne pas avec l'url dans le browser, ce n'est pas la HC2, mais la config du téléphone. Je viens d'essayer chez moi. J'imagine que ton SMS gateway server est RUNNING Dans les setting du serveur sur ton tél as-tu bien coché "Listen for HTTP send SMS command" ? car lors de me tests, je ne l'avais pas coché, et erreur.
  18. jojo

    Support Gea

    @Sakkhho, As-tu besoin de 7 valeurs différentes pour Daypart ? Moi je me contente de jour/nuit, et ça fonctionne très bien -- conditions IF local estJour = {"Global", "DayPart", "After SunRise"} local estNuit = {"Global", "DayPart", "After SunSet"} -- Techniques -- DayPart GEA.add (true, 1, "DayPart = Jour. (#date# à#time#)", {{"Time", "Sunrise", "Sunrise + 100"}, {"Global", "DayPart", "After SunRise"}}) GEA.add (true, 1, "DayPart = Nuit. (#date# à#time#)", {{"Time", "Sunset", "Sunset + 100"}, {"Global", "DayPart", "After SunSet"}}) keep it simple
  19. jojo

    Vd Calendrier

    ça m'a l'ai super intéressant. tu nous as mis l'au àla bouche, tu peux nous en dire plus ?
  20. c'est un fait, que avoir des supers vannes démotivées, mais pas de chaudière, ...
  21. jojo

    Gateway Sms Autonome

    bête réflexion, c'est bien l'IP de ton tel, pas celle de ta HC2 que tu as entrée ?
  22. @mprinfo, Quand tu as la solution àton problème FGBS, je suis intéressé, car j'ai également des trucs bizarre avec lui. Merci
  23. n'as-tu pas eu une coupure internet dans l'intervalle ?
  24. félicitations
  25. via l'API : http://tutoriels.domotique-store.fr/content/76/45/fr/api-commander-le-home-center-par-des-requêtes-http.html et plus préciésemnt http://<LOGIN>:<PASS>@<IP>/api/weather
×
×
  • Créer...