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

    Ecriture par API

    En effet, comme "IP" et "Port" (et certainement plein d'autre) cela ne fonctionne pas
  2. Steven

    Ecriture par API

    Je ne me prends pas la tête avec des PUT, je fait simplement ainsi https://HC2_IP/api/callAction?deviceID=100&name=setProperty&arg1=ui.Label1.value&arg2=10
  3. Steven

    Acces API HC2

    @pepite Prenons ton exemple : Lorsque tout ce passe bien, tu vas avoir en retour Diag = objet json contenant les informations demandées status = 200 errorCode = nil --- ben oui, il n'y a pas d'erreur donc ton code fibaro:debug("ErrorCode = "..tonumber(errorCode)) va planté car tu ne peux pas faire un tonumber(nil). Si tu veux vraiment affiché cette ligne, il te suffit de la modifier ainsi fibaro:debug("ErrorCode = "..tonumber(errorCode or 0)) Et voilà, tu auras 0 s'il n'y a pas d'erreur. En cas d'erreur, c'est simple Diag sera nil. On devrait donc traiter ce genre d'appel ainsi : response, status, errorCode = api.get("/.....") if (response) then -- traitement de la réponse else fibaro:debug("Une erreur est survenue [code=" .. (errorCode or "") .. ", status=".. (status or "") .."]" ) end
  4. Steven

    Acces API HC2

    Perso, je préfère l'usage de api.get C'est une méthode fournie par Fibaro qui va elle même gérer l'accès à l'api. S'ils changent quelque chose, c'est donc garanti que cette méthode soit adapté car sinon plus rien ne fonctionnera. Il faut savoir que TOUTES les méthodes fibaro:..... utilise api.get ou api.post, ... exemple si dessous : fibaro.setGlobal = function(self, varName, value) __assert_type(varName, "string") local data = {["value"]=tostring(value), ["invokeScenes"]=true} api.put("/globalVariables/" .. varName, data) end Donc cette fonction sera TOUJOURS à jour. Maintenant, l'usage de http://.../api apporte l'asynchrone mais honnêtement, qui utilise de l'asynchrone en domotique ? A mon avis pratiquement personne. Je ne connais pas de "Gros" traitement en domotique qui nécessite l'usage de l'asynchrone. Je pense plus que l'asynchrone n'est pas pour tout le monde, cela complexifie la compréhension du code et apporte souvent une grande confusion quand il s'agit de chaîner les appels. Voici donc mon avis personnel.
  5. Steven

    Support Gea

    C'était un test ... heuuu ... enfin ... presque. Bien joué @pepite Désolé @Sakkhho
  6. Steven

    Jour Chômé

    Oui, pour quasiment toutes les fêtes "mobiles" Pâques est le point de référence.
  7. Steven

    Jour Chômé

    Mardi gras = 47 jours avant Pâques. Vendredi saint = vendredi précédant le dimanche de Pâques soit josdJourFerieTab[os.date("%m-%d", epochPaques-(24*60*60)*2)] = true; -- Vendredi-saint = Pâques - 2 jour josdJourFerieTab[os.date("%m-%d", epochPaques-(24*60*60)*47)] = true; -- Mardi gras = Pâques - 47 jour josdJourFerieTab["27-05"] = true; -- Abolition josdJourFerieTab["21-07"] = true; -- Victor Schoelcher
  8. Steven

    Support Gea

    A moins que je ne me trompe, on peux tout faire sans "function" : local startRoomba = GEA.add({Absent, {"Global", "Roomba", "Docked"}, {"Global+", "VD_Roomba_Batt_Lev", "85"}}, 5*60, "", {{"VirtualDevice", id["ROMBA"], 19},{"setDisarmed",id["MOV_SALON"]}}) -- Lancement du Roomba GEA.add({"Global", "Roomba", "Cleaning"}, 30, {{"StopTask", startRoomba}}) GEA.add(true, 30, "", {{"Time", "00:01", "00:01"}, {"RestartTask", startRoomba}})
  9. Steven

    Support Gea

    Hi @UKCamaroSS, {"Time", "19:30"} is not enough, syntax is {"Time", <start>, <end>} so you have to write {"Time", "19:30", "19:30"} This should work because this line means : If the module 96 is ON more than 10mn, turn it OFF. Try it again once you have corrected the previous error with the {"Time", "19:30", "19:30"} Btw, welcome in GEA
  10. Pour ne pas que mon compte admin se ballade à droite et à gauche, je met à jour les labels d'un VD avec les informations que j'ai besoin (du style : ID, property, value) avec un utilisateur standard, puis un trigger va déclencher un scénario qui va mettre à jour un fake device. Le mot de passe admin ne transite donc jamais. Tous les modifications d'état de mes modules sont centralisées sur la HC2, aucune application externe n'a le droit de modifier l'état d'un de mes modules, uniquement l'écriture de labels ou l'appui sur un bouton.
  11. Je me suis lancé et j'ai cliqué ... bizarrement, aucun changement n'a eu lieu C'est bien le bon bouton ?
  12. Steven

    Support Gea

    GEA.add({"Power+", 52, 2}, -1, ....)
  13. Steven

    Plantage GEA à heure fixe...

    Aucun soucis réseau non plus vers cette heure ci ?
  14. x == y est une comparaison ... je compare la valeur de X à Y x = y est une affectation ... j'affecte la valeur Y à la variable X
  15. Excuse moi, c'est la ligne ci-dessous, j'ai oublié un "=" en plus, il doit y en avoir 2 en LUA if (etat == "Ouvert") then P.S. Je n'ai aucun moyen pour tester alors j'espère que c'est bon cette fois
  16. A mettre dans le "main loop" de ton VD local etat = fibaro:getGlobalValue("Etat_Volet_Entree") local color = "TxtGreen" if (etat = "Ouvert") then color = "TxtRed" end fibaro:log("Etat : " .. etat) fibaro:call(fibaro:getSelfId(), "setProperty", "logTemp", color )
  17. @speedoxx007 Le code que tu as posté n'est pas complet, soit tu as oublié de nous copier la fin, soit tu as oublié de la mettre dans ta scène
  18. Steven

    Pushbullet

    J'ai une version pro qui est donc illimitée et j'ai le même soucis
  19. Steven

    Mon Sapin FIBARO

    Les sapins artificiels sont encore moins écolo que les naturels donc vaut mieux pas en ajouter . ( Les sapins de noël naturels viennent de forêt durable et leur élimination est 100% recyclée, pour autant qu'on les jette pas comme des porcs n'importe où )
  20. Steven

    Support Gea

    Le code que je t'ai mis fait exactement ce que tu as besoin, il faut le tester et tu verras bien.
  21. Steven

    Support Gea

    Elle s'active si la lampe s'allume uniquement
  22. Steven

    Support Gea

    @pepite Nos message ont du se croiser. La solution que je propose ci-dessus répond, je pense, à tout les cas de figure.
  23. Steven

    Support Gea

    Voici un exemple, pour le fameux couple interrupteur/détecteur avec extinction automatique : -- Exctinction automatique après 30s local extinction = GEA.add( id["LAMPE"], 30,"",{{"turnOff", id["LAMPE"]}}) -- Allumage automatique lampe sur detection -- local detection = GEA.add( id["DETECTEUR"], -1,"", {{"turnOn", id["LAMPE"]}, {"RestartTask", extinction}}) -- Allumage manuel lampe -- GEA.add(id["LAMPE"], -1, "", {{"StopTask", extinction}, {"StopTask", detection}}) -- Exctinction de la lampe GEA.add(id["LAMPE"], -1, "", {{"Inverse"}, {"RestartTask", detection}}) Bonne chance
  24. Steven

    Support Gea

    Je te dirais de désinstaller l'application sur ton smartphone, de la réinstaller et de mettre ton nouvel ID. Cela fonctionne dans pas mal de cas.
  25. Tu as donc installé la dernière béta ?
×
×
  • Créer...