Aller au contenu

Messages recommandés

Posté(e)

@couillerot j'ai survolé les échanges sans vraiment lire, de même que ton code posté à la page précédente, mais il y a juste une chose qui m'interpelle : pourquoi appeler onInit() dans chaque fonction ?
ça ne pas de sens, onInit() est (et doit être) appelé une seule fois lors de la création du QuickApp, par la HC3.

Posté(e)
Le 27/02/2021 à 11:48, couillerot a dit :

je pensais que le onInit était une sorte de "Return"...

Non, le onInit() c'est juste la première fonction appelée lors de la création du QA (pas tout à fait, mais pour simplifier on va dire que c'est le cas)

 

Ensuite chaque fonction va se déclencher sur événement. Par exemple un utilisateur qui a cliqué sur un bouton/slider du QA, une fonction qui est appelée en asynchrone par un setTimeout() dans le cas d'une pseudo boucle infinie, ou bien encore une fonction appelée depuis l'IHM ou un autre QA, etc.

Le reste du temps, le QA ne fait rien.
C'est tout simple en fait.

 

  • Like 1
Posté(e)
Le 27/02/2021 à 11:52, jjacques68 a dit :

si tu veux afficher le contenu de tes variables "à la demande", passes peut-être par une fonction spécifique à cette usage...

J'ai adapté la QuickApp à mon installation et c'est exactement ce que j'ai fait et proposerais de faire. J'ai défini une fonction update() qui est appelée une fois dans la fonction onInit et après dans les gestionnaires d'événement, mais on peut aussi l'utiliser pour rafraîchir les infos à la demande:

 

function QuickApp:update()

    -- Mise à jour variable sur label

    local ModeCh = fibaro.getGlobalVariable("Heating_Library")

    self:updateView("lblMode", "text", "The Library radiator is in mode ".. ModeCh)

end

  • Upvote 1
Posté(e)

désolé pour ma réponse tardive mais je suis en pleine négo pour choisir mon futur poêle à granule...

 

je vais suivre vos conseils et (tenter de) faire une fonction pour la consigne ;)

 

Stef

Posté(e)

finalement, je n'ai pas eu besoin de créer une fonction "Consigne" et ça fonctionne parfaitement !

 

merci encore à tous pour votre aide :74:

 

Stef

Posté(e) (modifié)

voici le code fonctionnel (et initié par fredoki) :

 

41 est la sonde de température

112, 114 est le module FGS.

 

function QuickApp:onInit()
    self:debug("onInit")
    __TAG = "QA_"..plugin.mainDeviceId.."Chauffage Bureau"
    local ModeBureau = fibaro.getGlobalVariable("Mode_Bureau")
    local EtatBureau = fibaro.getGlobalVariable("Etat_Bureau")
    local tempBureau = fibaro.getValue(41, "value")
    local ConsigneBureau, _ = fibaro.getGlobalVariable("Consigne_Bureau")
    ConsigneBureau = tonumber(ConsigneBureau)
    self:updateProperty("Temperature", tempBureau)
    self:updateView("labelMode", "text", "Le chauffage du Bureau est en mode ".. ModeBureau)
    self:updateView("labelEtat", "text", "Le Chauffage du Bureau est en ".. EtatBureau)
    self:updateView("labelTemp", "text", "La température du Bureau est de ".. tostring(tempBureau) .." C°")
    self:updateView("labelConsigne", "text", "La Consigne de chauffage du Bureau est de ".. tostring(ConsigneBureau) .." C°")
    self:debug(type(ConsigneBureau), ConsigneBureau)
end

-- Mode Confort
function QuickApp:uiConfortOnR(event)
fibaro.call(112, "turnOff")
fibaro.call(114, "turnOff")
fibaro.setGlobalVariable("Mode_Bureau", "CONFORT")
self:debug("Chauffage Confort")
self:onInit()
end

-- Mode ECO
function QuickApp:uiEcoOnR(event)
fibaro.call(112, "turnOn")
fibaro.call(114, "turnOn")
fibaro.setGlobalVariable("Mode_Bureau", "ECO")
self:debug("Chauffage ECO")
self:onInit()
end

-- Mode Hors Gel
function QuickApp:uiHgOnR(event)
fibaro.call(112, "turnOn")
fibaro.call(114, "turnOff")
fibaro.setGlobalVariable("Mode_Bureau", "HORS-GEL")
self:debug("Chauffage HG")
self:onInit()
end

-- Mode STOP
function QuickApp:uiStopOnR(event)
fibaro.call(112, "turnOff")
fibaro.call(114, "turnOn")
fibaro.setGlobalVariable("Mode_Bureau", "STOP")
self:debug("Chauffage Stop")
self:onInit()
end

-- Consigne -1°c
function QuickApp:uiMoinsOnR(event)
local ConsigneBureau, _ = fibaro.getGlobalVariable("Consigne_Bureau")
ConsigneBureau = tonumber(ConsigneBureau) - 1
fibaro.setGlobalVariable("Consigne_Bureau", tostring(ConsigneBureau))
self:debug(type(ConsigneBureau), ConsigneBureau)
self:onInit()
end

-- Consigne +1°c
function QuickApp:uiPlusOnR(event)
local ConsigneBureau, _ = fibaro.getGlobalVariable("Consigne_Bureau")
ConsigneBureau = tonumber(ConsigneBureau) + 1
fibaro.setGlobalVariable("Consigne_Bureau", tostring(ConsigneBureau))
self:debug(type(ConsigneBureau), ConsigneBureau)
self:onInit()
end

-- Mode AUTO
function QuickApp:uiAutoOnR()
fibaro.setGlobalVariable("Etat_Bureau", "AUTOMATIQUE")
-- activation des Scenes Auto
self:debug("Etat AUTO")
self:onInit()
end

-- Mode MANUEL
function QuickApp:uiManuelOnR()
fibaro.setGlobalVariable("Etat_Bureau", "MANUEL")
-- désavtivation des Scenes
self:debug("Etat MANUEL")
self:onInit()
end

 

 

Modifié par couillerot
Posté(e)

étrange de faire appel au onInit() à chaque appuis bouton...

Le 27/02/2021 à 11:27, Lazer a dit :

pourquoi appeler onInit() dans chaque fonction ?
ça ne pas de sens, onInit() est (et doit être) appelé une seule fois lors de la création du QuickApp, par la HC3.

 

  • Like 1
Posté(e)
Il y a 12 heures, couillerot a dit :

QA fonctionnel ! 

 

merci à tous pour votre coup de main :74:

 

Stef

Thermostat.jpg

Hello,

 

Un petit partage de la version définitive ?

 

Merci

Posté(e)

je vais partager ce QA via peut-être un autre sujet pour ne pas polluer le thread de fredoki (qui est à l'origine de ce code et je l'en remercie)

 

Stef

  • Like 1
  • Thanks 1
  • 1 an après...
Posté(e) (modifié)

bonsoir,

voici ma personnalisation du QA :60:

un infime contribution pour ceux comme moi qui cherche, cherche, cherche et finissent par trouver grace à la communauté

grace à vous Koi ! :13: :D  

voici un QA pour le QUBINO fil pilote sur un seche serviette avec sonde temp

il vous faudra uniquement créer et renseigner 2 variables locales pour renseigner l'id de la sonde et l'id du qubino

 

 

 

ps: je viens de penser que j'aurai faire la creation auto des variables

bon ça sera pour la prochaine

 

PS2: je cherche à optimiser au maximum, alors franchement je suis preneur de vos remarques, observations, ameliorations

image.thumb.png.17c18021c882f757ccbfbb909dd08018.pngimage.png.384b4123f9e23cac9529945caca74cb7.png

 

Sdb_Rdc_Seche_Serviette.fqa

Modifié par flamalex
  • 3 semaines après...
Posté(e)

A la mise en service, La sonde sur Qubino a remonté une fois la température, celle ci reste fixe.

avant cela j’ai excu et inclu avec sonde branchée mais rien à faire

si vous connaissez la manip (sur hc3, avec sonde achetée avec le Qubino )

 

  • 3 mois après...
Posté(e) (modifié)

Bonjour,

 

je rencontre une erreur lors de la récupération de la consigne (je suis en HC3L)

 

image.png.359221d14da0d1972da734b04dd45976.png

image.png.954c8e40fe38fbc5b9063916c5d658c2.png

 

J'ai déclaré une variable de type texte

Peut-être est-ce ce point qui ne correspond pas ...

 

image.thumb.png.0a8b87a8e5f9271aa014a4640fbb0e1f.png

 

Merci pour votre aide.

Modifié par TitiXsi
Posté(e) (modifié)

Bonjour à tous, j'ai modifié la QA pour compiler correctement chez moi, je ne sais pas si ca vient du fait que j'ai une HC3L ou du type de variable que j'avais déclaré.
Le fix réside dans l'appel du Get et Set Variable et j'ai fait l'init de la variable en 2 fois, sinon j'avais une erreur un coup sur 2 ...:

Dans l'init, ça donne ceci :
-- orig
--local ModeCh = fibaro.getGlobalVariable("Chauffage_Salon")
-- fix
local ModeCh = "Not_Yet_Init"
ModeCh = self:getVariable("Chauffage_Salon")
 
Dans chaque mode:
-- orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Confort")
-- fix
self:setVariable("Chauffage_Salon", "Confort")
 

 

Voici le code complet:

 

-- QA de gestion pour un chauffage électrique en fil pilote 6 ordres piloté par un module Qubino
-- Fonnctionne avec une Variable Globale qu'il faut créer (pas de création automatique de la VG pour le moment)
-- VG = Chauffage_Salon {Confort, Confort-1, Confort-2, Éco, Hors-Gel, Arrêt}
-- Créé par fredokl pour le forum www.domotique-fibaro.fr
-- Version: 1.0
-- Version: 1.1 - 21.02.2023 - Titi fix fibaro.get/setGloblVariable by self:get/setVarible

function QuickApp:onInit()
    self:debug("onInit")
    __TAG = "QA_"..plugin.mainDeviceId.."Chauffage Salon"
    -- Mise à jour variable sur label        
    -- orig
    --local ModeCh = fibaro.getGlobalVariable("Chauffage_Salon")
    -- fix
    local ModeCh = "Not_Yet_Init"
    ModeCh = self:getVariable("Chauffage_Salon")

    self:updateProperty("Temperature", ModeCh)
    self:debug(ModeCh)
    self:updateView("lblMode", "text", "Le chauffage du Salon est en mode ".. ModeCh)
    self:TemperatureSalon()    
end

-- Température du Salon
function QuickApp:TemperatureSalon(event)
local tempSalon = fibaro.getValue(35, "value") -- Capteur température
self:updateProperty("Temperature", tempSalon)
self:updateView("lblTemp", "text", "La température du Salon est de ".. tostring(tempSalon) .." C°")
self:debug("Température du Salon ".. tostring(tempSalon) .." C°")
-- Rafraîchissement toutes les 10 secondes
--fibaro.setTimeout(1000 * 1 * 10, function()
-- Rafraîchissement toutes les 15 minutes
fibaro.setTimeout(1000 * 60 * 15, function()
self.TemperatureSalon()
end)
end

-- Mode Confort
function QuickApp:uiConfortOnR(event)
fibaro.call(34, "setValue", 90)
-- orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Confort")
-- fix
self:setVariable("Chauffage_Salon", "Confort")
self:debug("Chauffage en mode Confort")
self:onInit()
end

-- Mode Confort-1
function QuickApp:uiConfort_1OnR(event)
fibaro.call(34, "setValue", 50)
--orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Confort-1")
-- fix
self:setVariable("Chauffage_Salon", "Confort-1")
self:debug("Chauffage en mode Confort-1")
self:onInit()
end

-- Mode Confort-2
function QuickApp:uiConfort_2OnR(event)
fibaro.call(34, "setValue", 40)
--orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Confort-2")
-- fix
self:setVariable("Chauffage_Salon", "Confort-2")
self:debug("Chauffage en mode Confort-2")
self:onInit()
end

-- Mode Éco
function QuickApp:uiEcoOnR(event)
fibaro.call(34, "setValue", 30)
--orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Éco")
-- fix
self:setVariable("Chauffage_Salon", "Éco")
self:debug("Chauffage en mode Éco")
self:onInit()
end

-- Mode Hors-Gel
function QuickApp:uiHGOnR(event)
fibaro.call(34, "setValue", 20)
--orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Hors-Gel")
-- fix
self:setVariable("Chauffage_Salon", "Hors-Gel")
self:debug("Chauffage en mode Hors-Gel")
self:onInit()
end

-- Mode Arrêt
function QuickApp:uiArretOnR(event)
fibaro.call(34, "setValue", 0)
--orig
--fibaro.setGlobalVariable("Chauffage_Salon", "Arrêt")
-- fix
self:setVariable("Chauffage_Salon", "Arrêt")
self:debug("Chauffage à l'arrêt")
self:onInit()
end

 

J'en ai profité pour modifier les valeurs de pourcentage en fonction du mode pour que ceci calque les valeurs proposé dans l'interface des icones

image.png.7ecb028c10282220a51b8282c751547f.png

 

Dans le Home, sous PC ou Yubi, on obtient les bon icones, en fonction du mode.

image.png.50cc4a04ba31a7d9a0e6820db1d16e5a.png

 

Et je vous partage mes icones issues du forum, j'ai rajouté le -1 et -2

Confort.png.c5d4529cf14ac00e41545459c18c0896.png.231e897f9dea6fb5f8dc769894286e79.pngConfort-1.png.c5d4529cf14ac00e41545459c18c0896.png.d357b557c522ed5e5b4f0a0695273255.pngConfort-2.png.c5d4529cf14ac00e41545459c18c0896.png.52cc08b06a2c1c5b7c2ab7aeaa17b202.pngEco.png.abdae5591985077c1cc449f2dc99f67b.png.bddb7aa0ff4725052777877eb50646c3.pngHG.png.ea0a6b9a632cf3104f708faf0d22e7dd.png.951671217c6c55080ad47f17a3b081a2.pngkisspng-radijator-heating-radiators-central-heating-price-oasis-5acc5a17bc90b8.5392252815233418477724.png.6da46d2a10190a8dd6e9208630e0a4ea.pngStop.png.b2f69be250257716bfabdc60a72f6809.png.25ccc87b3c7316ab6e6df474acb0256e.png

 

Modifié par TitiXsi
Posté(e)

Merge de 2 zones + la température extérieure et avec quelques icones sur les boutons

 

image.thumb.png.2ee876afb4075711ec67993f86515066.png

 

Est-ce que vous pouvez m'aider à réaliser des saut de ligne dans les champs texte ? je n'y arrive pas et du coup, j'ai posé 3 labels au lieu d'un seul pour les tep des chambres.

Merci ;)

Rémi

Posté(e)

Bravo pour ton travail.

Sans certitude, mais tu peux tenter l'une de ces 3 solutions pour insérer un saut de ligne dans les chaines de caractères de tes labels :

  • "\n"
  • "<br>"
  • "<br/>"

 

Posté(e)

@TitiXsiPour les variables, se sont des variables globales qui doivent être créés dans le QA d'origine. Mais la modification avec des variable locales fonctionnent aussi. Sinon, pour le saut de ligne \r fonctionne.

Et ça fait plaisir de voir le QA se transformer au besoin de chacun.

Posté(e) (modifié)
Il y a 10 heures, fredokl a dit :

@TitiXsiPour les variables, se sont des variables globales qui doivent être créés dans le QA d'origine. Mais la modification avec des variable locales fonctionnent aussi. Sinon, pour le saut de ligne \r fonctionne.

Et ça fait plaisir de voir le QA se transformer au besoin de chacun.

Oui, j'ai bien déclaré les variables tout fonctionne,

j'ai juste le problème avec le saut de ligne dans une string qui ne fonctionne pas, voici ce que j'ai testés :

self:updateView("lblModeSalon""text""Chauffage Salon \r en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon ".."\r".." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon "..\r.." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon \n en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon ".."\n".." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon "..\n.." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon <br> en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon <br/> en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon "..<br>.." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon ".."<br>".." en mode : ".. ModeChSalon)
self:updateView("lblModeSalon""text""Chauffage Salon ".."<br/>".." en mode : ".. ModeChSalon)

 

Merci ;)

 

 

 

Modifié par TitiXsi
×
×
  • Créer...