
jjacques68
Membres confirmés-
Compteur de contenus
4 364 -
Inscription
-
Dernière visite
-
Jours gagnés
39
Tout ce qui a été posté par jjacques68
-
Oui la division/multiplication est prioritaire sur les addition/soustraction Rappel de bon vieux cours d'école [emoji6] Envoyé de mon iPhone en utilisant Tapatalk Pro
-
essaye : local total = (a + b) / c
-
panneau climat - éteindre le chauffage
jjacques68 a répondu à un(e) sujet de jjacques68 dans Support
bon ben ça à l'air de fonctionner comme ça... mais suis pas content de la méthode utilisée... -
y a le bon vieux manuel de fibaro : https://manuals.fibaro.com/content/other/FIBARO_System_Lua_API.pdf sinon parcourir le forum... et passer beaucoup, beaucoup de temps à essayer... ça vaut le coup...
-
la fonction getValue ne renvoie une donnée de type "string" (chaîne de caractère) ? essaye avec ça : local a = tonumber(fibaro:getValue(33, "value")) -- valeur de la lampe salon local b = tonumber(fibaro:getValue(452, "value")) ---valeur de la lampe ch enfant local c = tonumber(fibaro:getValue(255, "value")) ---valeur de la lampe bureau tonumber() converti les "string" en numérique...
-
"return", te permet de renvoyer une valeur. dans l'exemple, on renvoie true ou false. Qui peut être exploiter par la suite du programme. Ce n'est pas obligatoire dans cette exemple. ça peut être très utile pour des fonctions qui font des calculs. tu passes les paramètres en argument et tu récupère le résultat. exemple : function Somme(a, b) print("a = ", a) print("b = ", b) return (a + b) end print("Return = ", Somme(1, 2))
-
le principe est : function MaFonction(MonArgument) print(MonArgument) end MaFonction("toto") -- résultat : "toto" sera affiché
-
function functionA() local a = fibaro:getValue(33, "value") -- valeur de la lampe salon local b = fibaro:getValue(250, "value") ---valeur de la lampe ch enfant local c = fibaro:getValue(255, "value") ---valeur de la lampe bureau local MonRetour = false if (b < a) and (c < a) then MonRetour = true else MonRetour = false end return MonRetour end if functionA() == true then --action 1 à faire else --action 2 à faire end un truc comme ça ? il est possible de mettre les actions directement dans la fonction. et du coup plus besoin de traiter le retour de la fonction...
-
je comprends pas trop le but de la fonction !!
-
panneau climat - éteindre le chauffage
jjacques68 a répondu à un(e) sujet de jjacques68 dans Support
suite : nième tentative : Je touche plus au active/inactif de la zone. Je passe la zone en mode manuel avec un timestamp super loin (je serais normalement plus de ce monde ) local MyPanel = api.get("/panels/climate/"..id) MyPanel.mode = "Manual" MyPanel.properties.handSetPointHeating = 5 MyPanel.properties.handTimestamp = 4200000000 api.put("/panels/climate/"..id, MyPanel) alors visiblement le timestamp est limité : 9999999999 n'est pas accepté pour le remettre en ordre (mode automatique) : local MyPanel = api.get("/panels/climate/"..id) MyPanel.mode = "Schedule" MyPanel.properties.handTimestamp = 0 api.put("/panels/climate/"..id, MyPanel) c'est encore plus pourri... Je dis plus que ça marche avant d'être sûr -
panneau climat - éteindre le chauffage
jjacques68 a répondu à un(e) sujet de jjacques68 dans Support
ben non, au bout d'un certain temps, la vanne revient à 21 °C !! impossible de lui donner une consigne manuellement sans limite de temps !!!??? -
panneau climat - éteindre le chauffage
jjacques68 a répondu à un(e) sujet de jjacques68 dans Support
Ben je me réponds à moi même : Pour éteindre le chauffage, du moins, ne plus faire en sorte que le Climate Panel gère la zone : PS : je possède des têtes Danfoss LC13 il faut : (depuis un QA) 1- désactiver la le Climate Panel pour cette zone (l'ID étant celui de la zone et non du thermostat) local MyPanel = api.get("/panels/climate/"..id) MyPanel.active = false api.put("/panels/climate/"..id, MyPanel) 2- appliquer une consigne manuelle au(x) thermostat(s) de la zone : on peut récupérer la liste des thermostats de la zone via les propriété de la zone même et j'applique à chaque thermostat, une consigne de 5 °C , avec un timestamp de fin < à l'heure actuelle (comme ça la tête reste avec cette consigne) Si je fais pas ça, la tête prends une consigne par défaut de 21 °C... local ListeThermostat = api.get("/panels/climate/"..id).properties.devices for k,v in pairs(ListeThermostat) do MyThermostat = api.get("/devices/"..v) MyThermostat.properties.heatingThermostatSetpoint = 5 MyThermostat.properties.setpointExpiryDate = (os.time()-3600) api.put("/devices/"..v, MyThermostat) end pour réactiver le panel, il suffit de faire : le panel va reprendre le dessus et envoyer la bonne consigne au(x) thermostat(s) local MyPanel = api.get("/panels/climate/"..id) MyPanel.active = true api.put("/panels/climate/"..id, MyPanel) comme c'est tordu !!!!!!!!! mais ça marche. PAS !!! -
Détection de présence avec points d'accès Wi-Fi Ubiquiti Unifi
jjacques68 a répondu à un(e) sujet de Lazer dans Tutoriels
tu m'étonnes -
il y a u qqch sur le marketplace : https://marketplace.fibaro.com/items/hc3-netatmo-integration-of-main-weather-station-and-outdoor-sensor
-
Détection de présence avec points d'accès Wi-Fi Ubiquiti Unifi
jjacques68 a répondu à un(e) sujet de Lazer dans Tutoriels
oui j'avais vu ça aussi ça me travaille aussi -
alors : dans le NTP server, j'ai chez moi : pool.ntp.org J'ai pas constaté de décalage dans le temps... après l'affichage des navigateurs... ça reste... pas toujours à jour C'est tout à fait possible, moyennant quelques lignes de code pas méchant Il faut créé un QA (dans l'exemple ci-dessous, de type générique) Ajouter un bouton, saisir ses propriétés (colonne de droite) et coder l'action du bouton. Il y a un onglet "notification" directement dans les paramètres du device, tu peux choisir sur quelles actions doivent être notifiées et le type de notification (mail, push). étrange tu peux poster une capture de la scène ON ? perso je mettrais l'heure (qui est trigger de la scène) en premier, mais je pense pas que ça change pas grand chose...
-
zut dommage, désolé pour le faut espoir...
-
Moi ça m'avais sauvé... en espérant que ce soit ton cas...
-
HELP // projet de construction
jjacques68 a répondu à un(e) sujet de Manu31 dans Mon installation domotique
Tu parles des modules physiquement présent ? les modules comme les double binary switch ou encore les FGMS comptent pour 1 module ? ou 2 (binary switch) ou 3 (FGMS) ? -
et la pile du bios ?
-
code 200 = OK !
-
tu enlève juste le "@" tu gardes les ":" n'oublies pas de supprimer dans l'URL aussi : elle doit ressembler à ça : http:request("http://172.20.254.250:9002/status_header.html?p0=play&player=cc%3Acc%3Acf%3A10%3A61%3A81", {
-
tu vas sur le site : https://www.base64encode.org/ tu choisis "encode" et tu saisis ton user:mot de passe tu cliques sur le bouton "encode". tu récupères la chaine qu'il t'a créé et tu la colle dans : à la place des xxxxxxx ["Authorization"] = "Basic xxxxxxxx",
-
pense à utiliser le bouton "</>" de l'éditeur du forum quand tu postes du code... c'est plus lisible... je mettrais que ça dans les fonctions : le reste te cause les "ERROR" dans le debug... success = function(response) self:debug("response status:", response.status) end, error = function(error) self:debug('error: ' .. json.encode(error)) end et on peut déjà voir que le status est 401 ! donc problème d'authentification ! utilise la balise "Authorization" du Header !! et enlève les info d'authentification de l'URL. headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic ton_login:ton_mot_de_passe_en_base_64", ["Cache-Control"] = "no-cache, no-store", ["X-Fibaro-Version"] = "2" },
-
Je pense que le login:pass dans l'adresse est en trop, il faut le mettre dans le ["Authorization"] = "Basic ...", encodé en base64. EDIT : ou enlever la ligne avec le laisser dans l'URL... ["Authorization"] = "Basic pwd=", il serait bien de récupérer le retour de la commande avec un success = function(response)... et error = function(err)... et d'afficher ce retour ! afin de savoir ce qu'il ne marche pas...