Aller au contenu

triossrf

Membres confirmés
  • Compteur de contenus

    71
  • Inscription

  • Dernière visite

Réputation sur la communauté

14 Good

À propos de triossrf

  • Rang
    Membre interessé

Profile Information

  • Sexe :
    Homme
  • Ville :
    Valence
  • Intéret :
    Moto, Ordinateur, sport.
  • Box
    Autre
  • Version
    HC3

Visiteurs récents du profil

565 visualisations du profil
  1. triossrf

    ID RGB Walli

    salut @971jmd, J'ai publié mon Q.A si cela peut t'aider. Lien URL : Q.A Walli Tiens moi au jus si cela ta aidé.
  2. triossrf

    Quick App - Walli Color

    Salut tout le monde. Je vous partage un petit Quick App qui est encore en développement mais qui fonctionne très bien. Etant débutant en LUA, le code n'est certainement pas optimisé et je suis preneur de conseil. L'idée de ce Q.A était d'avoir une gestion des lumières Walli pour diverse usages (Veilleuses, ambiance, indicateur de présence dans une pièce, météo etc...) et de pouvoir avoir une gestion automatique ou manuel des leds. Un merci tout d'abord à @fredokl, @Fredmas et @Lazer qui m'ont aidé à faire mon premier Q.A via le forum. Téléchargement du Q.A: => Pour ce qui est des icones j'avais demandé à @fredokl de me faire des jolies icones pour mon Q.A. Good job! Code Q.A: -- QA Réglage Walli -- Créé par triossrf -- Aidé par fredokl , Fredmas , Lazer -- Version 1 le 29/11/2021 -- Crée pour la communauté https://www.domotique-fibaro.fr/ --**************************************************************************** local Walli = 41 --<-- Mettre l'ID du Walli içi local APIBrillance = api.get("/devices/"..Walli).properties.parameters[3].lastSetValue function QuickApp:onInit() self:debug("onInit") self:JourNuit() self:WalliMaj() self:Icone() self:ActiveWalli() self:JourNuit() self:loop() self:Profile() __TAG = "QA_"..plugin.mainDeviceId.."_Gestion_BURWalli" end --[[ ******************************************* *** Profiles *** ******************************************* ]]-- function QuickApp:Profile() local APIProfil= api.get("/profiles").activeProfile local VarProfiles = self:getVariable("Profiles") local VarIco = self:getVariable("Icone") self:debug("Profiles N°:" ..APIProfil) --< Donne le numéro du profiles en cours dans le débug if APIProfil == 1 then --< Profile Présent self:setVariable("Profiles", "Présent") elseif APIProfil == 2 then --<Profile Absent self:setVariable("Profiles", "Absent") end if VarProfiles == "Présent" then fibaro.call(Walli, 'setRingOnColor', "green") fibaro.call(Walli, 'setRingOffColor', "blue") elseif VarProfiles == "Absent" then fibaro.call(Walli, 'setRingOnColor', "none") fibaro.call(Walli, 'setRingOffColor', "none") self:setVariable("Icone", "Eteint") self:updateProperty("deviceIcon", 1066) end end --[[ ******************************************* *** SLIDER+Variable *** ******************************************* ]]-- function QuickApp:Brightness(event) Intensite = event.values[1] walliBur = fibaro.call(Walli, 'setRingBrightness', Intensite) self:debug("Slider", Intensite) self:updateView("LblSlider", "text", "Intensité: " ..Intensite.. "%") self:setVariable("WalliLu", Intensite) local VarWalli = self:getVariable("WalliLu") self:debug("WalliLu:" ..VarWalli) self:updateView("SliderBrightness", "value", tostring(VarWalli)) end --[[ ******************************************* *** M.A.J SLIDER *** ******************************************* ]]-- function QuickApp:WalliMaj() self:debug("Intensite:" ..APIBrillance) self:updateView("LblSlider", "text", "Intensité: " ..APIBrillance.. "%") self:updateView("SliderBrightness", "value", tostring(APIBrillance)) end --[[ ******************************************* *** Variable Jour/Nuit *** ******************************************* ]]-- function QuickApp:JourNuit() if fibaro.getValue (1, 'sunsetHour') then self:setVariable("JourNuit", "jour") self:setVariable("Mode", "Automatique") elseif fibaro.getValue (1, 'sunriseHour') then self:setVariable("JourNuit", "nuit") self:setVariable("Mode", "Automatique") end end --[[ ******************************************* *** On/Off Walli *** ******************************************* ]]-- function QuickApp:ActiveWalli() local VarAutoMan = self:getVariable("Mode") local VarIco = self:getVariable("Icone") local APIVolet = api.get("/devices/"..Walli).properties.value self:debug("% Volet:" ..APIVolet) self:debug("VarIco:", self:getVariable("Icone")) if APIVolet == 0 and VarAutoMan == "Automatique" then self:setVariable("EtatVolet", "Fermé") fibaro.call(Walli, 'setRingOnColor', "green") fibaro.call(Walli, 'setRingOffColor', VarIco) self:debug("Volet fermé") end if APIVolet > 1 and VarAutoMan == "Automatique" then self:setVariable("EtatVolet", "Ouvert") fibaro.call(Walli, 'setRingOnColor', "green") fibaro.call(Walli, 'setRingOffColor', "none") self:debug("Volet ouvert") end end --[[ ******************************************* *** M.A.J Icone *** ******************************************* ]]-- function QuickApp:Icone() local VarAutoMan = self:getVariable("Mode") local VarIco = self:getVariable("Icone") if VarIco == "blue" then self:updateProperty("deviceIcon", 1062) --< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Bleu \r ------------------\r " ..VarAutoMan ) elseif VarIco == "white" then self:updateProperty("deviceIcon", 1066)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Blanc \r ------------------\r " ..VarAutoMan ) elseif VarIco == "red" then self:updateProperty("deviceIcon", 1068)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Rouge \r ------------------\r " ..VarAutoMan ) elseif VarIco == "cyan" then self:updateProperty("deviceIcon", 1063)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Cyan \r ------------------\r " ..VarAutoMan ) elseif VarIco == "green" then self:updateProperty("deviceIcon", 1064)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Vert \r ------------------\r " ..VarAutoMan ) elseif VarIco == "yellow" then self:updateProperty("deviceIcon", 1069)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Jaune \r ------------------\r " ..VarAutoMan ) elseif VarIco == "magenta" then self:updateProperty("deviceIcon", 1067)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Rose \r ------------------\r " ..VarAutoMan ) elseif VarIco == "Eteint" then self:updateProperty("deviceIcon", 1066)--< Penser a changer le numero de l'icone si besoin. self:updateView("labelBur", "text", "------------------ \r Bureau \r ------------------ \r Walli: Eteint \r ------------------\r " ..VarAutoMan ) end end --[[ ******************************************* *** Boutons *** ******************************************* ]]-- function QuickApp:Manuel() self:setVariable("Mode", "Manuel") self:loop() end function QuickApp:Auto() self:setVariable("Mode", "Automatique") self:loop() end function QuickApp:turnOffBur() fibaro.call(Walli, 'setRingOffColor', "none") fibaro.call(Walli, 'setRingOnColor', "none") self:setVariable("Icone", "Eteint") self:Icone() end function QuickApp:CyanBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "cyan") fibaro.call(Walli, 'setRingOnColor', "red") self:setVariable("Icone", "cyan") self:Icone() end function QuickApp:BleuBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "blue") fibaro.call(Walli, 'setRingOnColor', "red") self:setVariable("Icone", "blue") self:Icone() end function QuickApp:BlancBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "white") fibaro.call(Walli, 'setRingOnColor', "red") self:setVariable("Icone", "white") self:Icone() end function QuickApp:VertBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "green") fibaro.call(Walli, 'setRingOnColor', "red") self:setVariable("Icone", "green") self:Icone() end function QuickApp:RougeBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "red") fibaro.call(Walli, 'setRingOnColor', "green") self:setVariable("Icone", "red") self:Icone() end function QuickApp:JauneBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "yellow") fibaro.call(Walli, 'setRingOnColor', "red") self:setVariable("Icone", "yellow") self:Icone() end function QuickApp:RoseBur() self:setVariable("Mode", "Manuel") fibaro.call(Walli, 'setRingOffColor', "magenta") fibaro.call(Walli, 'setRingOnColor', "blue") self:setVariable("Icone", "magenta") self:Icone() end --[[ ******************************************* *** Boucle *** ******************************************* ]]-- function QuickApp:loop() self:ActiveWalli() self:Icone() fibaro.setTimeout(10*3000, function() self:loop() end) end Walli1.0.fqa
  3. triossrf

    Problème avec un QA Roller Shutter

    Salut. Question peut être bête, mais quel est l'intérêt de coder en HTML plutôt que en LUA le Quick App?
  4. triossrf

    Récupérer valeur dans un API

    Salut a tous. Me revoilà avec une petite question. Je me suis amuser à utiliser le API.get mais cela ne fonctionne pas pour tout et je ne sais l'expliquer... Des lumières aussi briantes que vous pourrons m'éclairer je n'en doute pas. Je voulais donc récupérer la valeur suivantes (ringcolor, je suppose que c'est la couleur actuel): "type": "com.fibaro.FGWR111", "baseType": "com.fibaro.FGR", "enabled": true, "visible": true, "isPlugin": false, "parentId": 38, "viewXml": false, "configXml": false, "interfaces": [ "energy", "levelChange", "power", "ringColor", <----- Je voudrais la valeur du ringcolor "zwave", "zwaveAlarm", "zwaveMultiChannelAssociation", "zwaveProtection" ], J'ai donc écrit le code suivant: local Walli = 41 local APIRing = api.get("/devices/"..Walli).interfaces.ringColor function QuickApp:WalliMaj() self:debug("APIRING:" ..APIRing) --<Débug A.P.I > end Ce qui me donne la réponse: main.lua:61: attempt to concatenate a nil value (upvalue 'APIRing') J'ai essayer plusieurs synthax mais le résultat n'est jamais concluant. Pourtant j'arrive à récupérer d'autres éléments mais seulement numérique mais dés lors que c'est du texte ou du boolean hé bien je n'est pas de résultat. merci du coup de pousse.
  5. triossrf

    ID RGB Walli

    Salut @971jmd Pour ma part je n'ai pas réussi à le gérer en RGB mais seulement avec les couleurs définis 0- none 1- white 2- red 3- green 4- blue 5- yellow 6- cyan 7- magenta D'ailleurs, je suis en train de faire un petit Q.A pour la gestion des couleurs des walli si sa t'intéresse je peu te le transmettre.
  6. triossrf

    setTimeout seule solution?

    Merci pour vos réponses, je vais essayer tout cela prochainement
  7. triossrf

    Récupérer valeur dans un API

    @971jmd As tu réussis à faire un api.put ?
  8. triossrf

    setTimeout seule solution?

    Bah disons qu'au lieu de faire une boucle toutes les 10 secondes, j aurais une fonction qui prenne en compte en temps réel et qu'une seul fois un changement d état du volet sa éviterai à la machine de tourner pour rien. Après, si il n y a aucun impact sur la machine autant faire cela puisque ça marche. Je m étai dis que si il y a 20 Q.A qui ont des settimeout toutes les 10 secondes sa doit tirer sur la machine. ( je n ai pas de recul suffisant pour savoir ce que peut supporter la hc3) .
  9. triossrf

    setTimeout seule solution?

    Effectivement tu as mit le doigt dessus! Il y'a plusieurs raison à cela. 1- Pour éviter de solliciter la box pour rien. Si mon volet change 4 fois max d'état par jours je trouve cela dommage de faire une boucle toute les 30 secondes pour vérifier l'état. 2- Effectivement, j'aurai bien aimé qu'il y ai un peu d'instantanéité à la fin de la lecture de la fonction. Il n'y a donc pas possibilité de détecter instantanément un changement de variable (local ou global) ? Cela pourrait permettre de résoudre mon problème.
  10. triossrf

    setTimeout seule solution?

    Bonsoir à tous. J'aimerai savoir si il y' a d'autre méthode dans un Q.A mise à part le settimeout? je m'explique: Ce soir j'ai fais un bout de code qui est le suivant: local Volet = fibaro.getValue(Walli, "value") function QuickApp:ActiveWalli() if Volet == 0 then self:setVariable("EtatVolet", "Fermé") fibaro.call(Walli, 'setRingOnColor', "green") fibaro.call(Walli, 'setRingOffColor', "blue") self:debug("Volet fermé") else self:setVariable("EtatVolet", "Ouvert") fibaro.call(Walli, 'setRingOnColor', "none") fibaro.call(Walli, 'setRingOffColor', "none") self:debug("Volet ouvert") end end Est-ce qu'il n'y a pas possibilité de faire une lecture instantanée des variables lors d'un changement d'état du volet par exemple? J'ai bien pensé à faire un self:ActiveWalli(), mais tout logiquement il me Lit la variable à l'infini tant qu'il n'y a pas de changement d'état. Si jamais il y a des méthodes plus pertinentes que le settimeout. Je suis preneur. Merci.
  11. triossrf

    Récupérer valeur dans un API

    Pour revenir aux moutons de @971jmd! Et non, on ne ta pas oublié ! Je pense que l'on peut utiliser les codes suivants: api.delete("") api.get("") api.post("", {}) api.put("", {}) Aprés c'est toujours le même soucis, il faut trouver la bonne synthax ^^
  12. triossrf

    Récupérer valeur dans un API

    Vous êtes des machines les mecs ! En tout cas dans ce topic j'aurais appris comment aller chercher dans l'A.P.I et comment faire une boucle. Si je comprend bien, ipairs correspond à un index ou une valeur numérique? Par contre je n'ai pas compris la subtilité du "_" a la place du "i".
  13. triossrf

    Récupérer valeur dans un API

    Salut @971jmd. Je ne sais pas si c'est exactement ça que tu entends par "put", mais je suppose que tu veux récupérer la valeur de l'API (l'ID , lastReportedValue, etc...) afin de le mettre dans un label par exemple? Si oui, je récupère les données de l'API afin de mettre à jour un label en lien avec un slider. J'ai procédé de cette manière. function QuickApp:onInit() self:WalliMaj() end local Brillance = api.get("/devices/"..Walli).properties.parameters[3].lastSetValue --<Cherche la valeur lastSetValue de l'ID 13 dans le fichier Json> function QuickApp:WalliMaj() self:debug("Intensite:" ..Brillance) --<Débug Local Brillance> self:updateView("LblSlider", "text", "Intensité:" ..Brillance) --<M.A.J Lbl Slider> self:updateView("SliderBrightness", "value", tostring(Brillance)) --<M.A.J Slider> end
  14. triossrf

    Slider

    Si jamais cela peu aider d'autre personne dans l'utilisation des Slider Voilà donc la conclusion de ce topic. function QuickApp:onInit() self:debug("onInit") end function QuickApp:Brightness(event) Intensite = event.values[1] walliBur = fibaro.call(41, 'setRingBrightness', Intensite) self:debug("Slider", Intensite) --<Affiche la valeur du slider dans le débug> self:updateView("LblSlider", "text", "Intensité:" ..Intensite) --<M.A.J Intensité dans un Label> self:setVariable("WalliLu", Intensite) --<Creation d'une variable dans le Q.A lorsqu'on positionne le Slider> local VarWalli = self:getVariable("WalliLu") --<Lecture de la variable WalliLu> self:debug("WalliLu:" ..VarWalli) --<Débug Variable WalliLu> self:updateView("SliderBrightness", "value", tostring(VarWalli) ) --<M.A.J Slider automatiquement à l'ouverture du Q.A> end
  15. triossrf

    Slider

    Effectivement, on peut chercher un moment sans le "tostring" rien ne fonctionne. Je me demande comment vous arrivez à savoir qu'il faut mettre un tostring pour que ça marche, d'autant plus que sur une slider on utilisera jamais de chaine de caractère si je me trompe pas. En tout cas un grand merci à vous. Grâce à vous j'ai compris comment fonctionnent les slider, je vais essayer de synthétiser tout cela afin que ce Topic serve à d'autre personnes .
×