Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    (Tuto) Fake Device + Zibase

    @Guru Si tu veux une seule scène pour gérer plusieurs Fake Device, voici un exemple : --[[ %% globals OS4196965633_V1 OS4196965633_V2 --]] local VAR_FAKE = { OS4196965633_V1 = 180, OS4196965633_V2 = 182 } local declencheur = fibaro:getSourceTrigger() local valeur = tonumber(fibaro:getGlobalValue(declencheur.name)) local prop = {properties = { value = valeur }} api.put("/devices/"..VAR_FAKE[declencheur.name], prop) Tu déclares tes variables dans l'entête et dans le tableau sous la forme <variable> = <fake_device_id> et le tour est joué. Chaque fois qu'une variable va changé, sa valeur sera envoyée dans le fake device correspondant.
  2. Steven

    (Tuto) Fake Device + Zibase

    C'est la faute au forum, il me donne le titre "Maître Yoda du forum" :-)
  3. Steven

    (Tuto) Fake Device + Zibase

    Alors je suis ... CONTENT
  4. Steven

    FGS222 + VMC récupération ID d'entrée

    Bon ben reste plus que la variable global .. . beurrrkkk ... désolé.
  5. Steven

    FGS222 + VMC récupération ID d'entrée

    Pour cela, il faut que tu regarde le dernière paramètre de ton FGS222, soit il te parle de SceneActivation .. soit c'est mort.
  6. Steven

    FGS222 + VMC récupération ID d'entrée

    Si le FGS222 peut supporter les SceneActivation, c'est sûrement un bon moyen de faire ce que @Guru souhaite. Les scénarios déclenché par, XXX sceneActivation sont des appuis PHYSIQUE, et les scénarios déclenché par XXX value sont des changements virtuels. C'est pas bête @pepite
  7. Steven

    FGS222 + VMC récupération ID d'entrée

    Je vois ce que tu veux dire. Tu aimerais pouvoir différencier un ON physique, d'un ON effectuer via un scénario. La bonne réponse est ... cela n'est pas possible ... pas cool non ? Par contre, les actions étant séquentielles, tu pourrais jouer sur une variable globale (c'est ce que j'utilise dans GEA). Lorsque l'action est effectuée par un scénario, je met une variable globale dans un certain statut ... du style Virtuel = ON, puis j'active le bouton ON, puis je repasse Virtuel = OFF. Lors de l'activation du bouton ON tu vas/risques de déclencher d'autres scénarios, il faudra donc tester en priorité l'état de la variable "Virtuel". C'est pas optimal mais fonctionnel. Si quelqu'un d'autre a une autre idée ?
  8. Steven

    (Tuto) Fake Device + Zibase

    C'est bon, j'ai trouvé la bonne syntaxe ... testé et approuvé --[[ %% globals OS4196965633_V2 --]] local fakedevice = 139 local humidite = tonumber(fibaro:getGlobalValue("OS4196965633_V2")) local prop = {properties = { value = humidite}} api.put("/devices/"..fakedevice, prop)
  9. Steven

    (Tuto) Fake Device + Zibase

    Ok, je regarde dès que je peux
  10. Steven

    (Tuto) Fake Device + Zibase

    Bon ben faudra que je crée un fake device pour essayer. Pourrais-tu juste essayer ceci une dernière fois stp : --[[ %% globals OS4196965633_V2 --]] local fakedevice = 139 local humidite = fibaro:getGlobalValue("OS4196965633_V2") local payload = "/devices/"..fakedevice local device = api.get(payload) device.properties.value = humidite api.put(payload, device)
  11. Alors si tu reprends le script de @pepite (<-- bien joué) et que tu le modifie un tout petit peu, cela fait exactement ce que tu veux. Juste qu'il va vérifier toutes les minutes la température et il stoppe la pompe quand elle sera en dessous des 40. Si tu trouves que toutes les 60 secondes c'est trop ou pas assez, tu n'as plus qu'à changer la valeur "local rafraichissement = 60" par le nombre de secondes de ton choix. --[[ %% properties 342 value %% events %% globals --]] -- 327 = Pompe circulation -- 329 = Chaudière / Bruleur -- 342 = Thermostat radiateur cuisine -- 345 = Température circulation local rafraichissement = 60 local Source = fibaro:getSourceTrigger() local Pompe = tonumber(fibaro:getValue(327, 'value')) --Déclaration variable Pompe function Run() local Chaudiere = tonumber(fibaro:getValue(329, 'value')) --Déclaration thermostat local Thermostat = tonumber(fibaro:getValue(342, 'value')) > 0 --Déclaration chaudière en marche local TemperatureCirculation = tonumber(fibaro:getValue(345, 'value')) -- Déclaration température circulation if Thermostat then fibaro:call(329, 'turnOn') -- Marche chaudière fibaro:call(327, 'turnOn') -- Marche pompe circulation fibaro:debug(" Mise en marche Pompe : " ..Pompe.. " - Chaudiere : " ..Chaudiere) else fibaro:call(329, 'turnOff') -- Arret Chaudière fibaro:debug("Arret chaudiere : " ..Chaudiere) end setTimeout(function() if (Chaudiere == 0) and (TemperatureCirculation < 40) then fibaro:call(327, 'turnOff') --- Arret pompe de circulation fibaro:debug("Arrêt Pompe 60 secs après arrêt chaudiere: " ..Pompe) else Run() end end, rafraichissement*1000) -- tempo avant arret pompe 60 secondes end if Source["type"] == "property" then Run() end
  12. Steven

    (Tuto) Fake Device + Zibase

    la valeur n’apparaît pas sur ton device 119 ... oups ... 139 :-) Je suis en forme ce matin.
  13. Steven

    (Tuto) Fake Device + Zibase

    Tu n'y mets pas de la bonne volonté ... tout le monde sait que c'est api.put et non pas api:put .... OK OK .. Je sors (c'est ma faute) api:put(payload, myJson) doit être remplacé par api.put(payload, myJson)
  14. Steven

    (Tuto) Fake Device + Zibase

    Oui, l'IP 127.0.0.1, port 1111 est l'adresse interne à ta box, il ne faut pas le changer. Essaie ce code depuis un scénario stp : --[[ %% globals OS4196965633_V2 --]] local fakedevice = 139 local humidite = fibaro:getGlobalValue("OS4196965633_V2") local myJson = '{"properties":{"value":'..humidite..'}}' local payload = "/devices/"..fakedevice api:put(payload, myJson)
  15. Steven

    FGS222 + VMC récupération ID d'entrée

    Le seul VRAI moyen est de créer une variable globale ... du style : "SUSPENDRE" qui peut prendre les valeurs OUI ou NON (nom de variable pas terrible, a toit de trouver quelque chose de plus parlant) Quand tu appuies sur l'interrupteur, tu passes la variable "SUSPENDRE" à OUI. Dans toutes tes scènes qui doivent se mettre en attente, tu ajoutes le code suivant (au bon endroit) if (fibaro:getGlobalValue("SUSPENDRE") == "OUI" then fibaro:abort() end Cela va forcer le scénario stopper il faut voir la scène car si c'est une boucle cela risque de la tuer au lieu de la stopper et dans ce cas la, il vaut mieux faire un "return" au lieu du "fibaro:abort()". L'avantage avec ce système c'est que tu pourras ajouter, dans le future, d'autre conditions qui pourront mettre en "suspend" ces scénarios.
  16. Il y a un soucis au code proposé. Si après 60 secondes la température n'est pas en dessous des 40 ... plus rien ne se passe. Il faudrait relancer le "Run()" dans le setTimeout(). setTimeout(function() if (Chaudiere == 0) and (TemperatureCirculation < 40) then fibaro:call(327, 'turnOff') --- Arret pompe de circulation fibaro:debug("Arrêt Pompe 60 secs après arrêt chaudiere: " ..Pompe) else Run() end end, 60*1000) -- tempo avant arret pompe 60 secondes
  17. Steven

    Utilisation API HC2

    C'est quoi ce PUT tout pourri :-) api.put(Pannel.properties["monday"].morning["hour"]) Allez, encore un effort, peut-être ? :-) api.put("/panels/heating/61", Pannel)
  18. Steven

    (Tuto) Fake Device + Zibase

    Tu as ton module sur ta Zibase : OK Tu as le VD qui interroge ta Zibase et remonte la valeur dans une variable globale : OK Tu as créer un Fake Device : OK Il te manque donc juste un scénario ... imaginons que ta variable globale est : VS12345_V2 et que l'ID de ton Fake Device est le 112, voici le scénario : --[[ %% globals VS12345_V2 --]] local fakedevice = 112 local humidite = fibaro:getGlobalValue("VS12345_V2") local myJson = '{"properties":{"value":'..humidite..'}}' local payload = "/api/devices/"..fakedevice local HC2 = Net.FHttp("127.0.0.1",11111); local response, status, errorCode = HC2:PUT(payload, myJson) A chaque changement de valeur de ta variable globale "VS12345_V2" ce scénario va ce lancer et il va mettre à jour la valeur de ton Fake Device.
  19. Voir chaotique
  20. A ce que je comprends : @Alexandru souhaiterais une seule et même scène qui soit capable de : 1. Vérifier quel lampe est allumée (une ou plusieurs) 2. Envoyé une notification pour dire "la/les lampe(s) .....<nom des lampes>... est/sont allumée(s) voulez vous éteindre ?" 3. Si oui lancer une scène capable de la/les éteindre C'est bien cela ? Ou au contraire, c'est une notification par lampe ? Du style : "La lampe du salon est allumée, voulez-vous l'éteindre ?" "Les spots sont allumés, voulez-vous les éteindre ?" ... En fait, je ne sais pas non plus
  21. Steven

    Mainloop Lua VD

    Je te propose et conseil de modifier les toutes dernières lignes du VD ainsi : pcall(function() Zibase.putSensorsInMemory() local time = os.date("le %d.%m.%Y à %H:%M:%S") if (Zibase.errors > 0) then time = "Erreur : " .. Zibase.errors end fibaro:call(fibaro:getSelfId(),"setProperty","ui.Label1.value",time) end) fibaro:sleep(maj*1000) Le fait d'entourer le code par "pcall" évite le module de planter. Si une erreur survient, il sera relancé les prochaines 30 secondes. Pour le fake device, le seul module z-wave qui vaut vraiment la peine serait l'oeil de sauron (FGMS)
  22. Steven

    Mainloop Lua VD

    L'erreur 1 me rappel quelque chose, mais c'est tellement vieux que je sais plus ce que c'est. Si jamais, envoi moi ton VD et je le ferais tourner chez moi pour essayer de provoquer l'erreur. Pour les fakes VD, je crois qu'il faut vraiment un module z-wave pour l'utiliser comme référence.
  23. Steven

    Support Gea

    A mon avis, tu n'as pas copier le script au complet avant de l'adapté ? Sinon tu peux m'envoyer un copie du script complet à steven.piccand@gmail.com et je jetterais un oeil ... ou deux si je suis en forme.
  24. et dans la boucle ci-dessous, le "timeout" n'existe pas, c'est à définir : while (fibaro:getValue(vd_id, "ui.Label2.value") == "OUI") do fibaro:sleep(2000) if (timeout) then -- en cas d attente trop longue, prevoir une sortie fibaro:abort() var_abort=true end end Et je ne vois pas quand le label repasse à "NON".
  25. J'ai pas tout lu, mais du premier coup d'oeil : Attendre : OUI while (fibaro:getValue(vd_id, "ui.Label2.value") == "OUI") do Et mettre : YES fibaro:call(vd_id, "setProperty", "ui.Label2.value", "YES") Je vois pas comment cela peux fonctionner.
×
×
  • Créer...