Aller au contenu

Lazer

Administrateur
  • Compteur de contenus

    25 881
  • Inscription

  • Dernière visite

  • Jours gagnés

    1 257

Tout ce qui a été posté par Lazer

  1. Lazer

    Panneau d'évènements

    Si il utilise un PC portable, c'est mort . N'importe quelle TV peut servir d'écran, mais pour le clavier, faudra en racheter un.
  2. Le NAS il a déjà son ventillo d'extraction normalement, donc inutile d'en rajouter. Il faut juste s'assurer que l'air qu'il aspire soit frais, c'est à dire qu'il ne doit pas aspirer de l'air qui a déjà été réchauffé par un autre appareil dans l'armoire.
  3. J'utilise Google pour chercher sur le forum ! Je pense que oui pour success et error
  4. Tes photos doivent être en Jpeg ou PNG pour passer sur le forum (Les 2 standard du Web, si on exclu les GIF animés...) Cherche "refroidisseur pc portable" sur Amazon, il y a des tonnes de référence. Je crois que c'est Nico qui avait essayé. Sinon n'importe quel ventilo de PC en 12 ou 14 cm que tu pourra monter comme bon te semble en fonction de ton armoire. C'est du cas par cas. Idem pour le sens de ventilation, je ne peux pas trop répondre à ta place, ça dépend de la configuration.
  5. Merci @frixo pour ton retour détaillé. J'ai fusionné ton message avec le topic unique du module dans cette section, et ajouté un lien vers ton tuto en première page.
  6. Si je ne dis pas de bêtise, ce genre d'appareil ne fait qu’humidifier l'air. Conséquences : - si l'air est sec => la peau du corps humain ressent cette humidité comme un rafraichissement (même principe que les brumisateurs) - si l'air est humide (temps lourd, orageux) => effet très désagréable sur soi, insupportable - pour les appareils électriques => dans tous les cas, une hausse de l'humidité est mauvaise et ne peux que nuire à l'électronique. Il faut bien comprendre que le principe de l'appareil n'est pas de rafraichir l'air, mais uniquement la sensation que les humains en ont. Et encore, ça dépend de l'humidité relative de l'air.... J'ajoute même que puisqu'il consomme quelques Watts, il réchauffera mathématiquement l'air. Bref, oublie, ce produit est un attrape nigaud, et je remplacera jamais une climatisation. Si tes appareils ont chaud, et que tu ne peux pas installer une climatisation, tu peux mettre des ventilateurs pour refroidir localement l'air dégagé par chaque appareil sur sa tablette. Par exemples : - plateau de refroidissement d'ordinateur portable à placer sous chaque box - ventilateur de PC 12 ou 14 cm alimenté en 5 ou 12V, positionné juste sur le boitier de chaque box avec des patins pour ne pas que les pales frottent. => technique que j'utilise pour refroidir mon routeur.
  7. Partage ton code et un maximum de détail, les logs, etc Tu peux faire ça dans ton topic d'origine.
  8. OK Donc il faut que tu imbriques les 2 fonctions l'une dans l'autre (en vertu de ce qui a été dit... le code DOIT continuer dans la fonction success() Quand tu décodes le tableau dans la première fonction success() : local jsonTable = json.decode(response.data) Juste après tu modifies la valeur : jsonTable.zones[1].state = "1" Puis tu donnes l'ensemble (avec json.encode()) dans les options de ton second appel http : options = { method = 'POST', data = json.encode(jsonTable) } })
  9. Euh... mais en fait tu récupère un JSON via une requête GET, tu veux modifier une valeur, et le réinjecter dans une requête POST, c'est ça ?
  10. Lazer

    Panneau d'évènements

    Donc c'est bon alors ? Par contre quand il y a beaucoup d'événements, le panneau devient inutilisable... Perso avec 70 modules, ça génère tellement d'information (surtout les relevés de température, etc) que ça devient ingérable. OK pour l'onduleur Disons qu'un final si la HC2 est coupée violemment, on va dire, une fois pas an, ce n'est pas trop un souci. Si c'est tous les mois, ça devient critique. Ce n'est pas la durée de la coupure qui importe, mais la coupure tout court. C'est un PC, la moindre coupure, tu perds le travail en cours, et pire encore, tu corromps les fichiers qui étaient en cours d'écriture à ce moment là. La HC2 met tout dans une base de données, donc un fichier unique. Une coupure au mauvais moment et tu perds tout. Penses à faire des backups réguliers. Si tu as un écran/clavier, va faire un tour dans le BIOS de la carte mère, normalement le paramètre de reboot automatique devrait être actif. Ce n'est peut être pas le cas chez toi. Autre chose, quand la coupure est trop brève (quelques secondes), la carte mère ne redémarre pas toute seule. Mais l'onduleur doit te protéger contre les coupures courte, donc il ne reste que les coupures longues (batterie à plat), et dans ce cas, la carte mère doit redémarrer seule si le paramètre du BIOS est bien réglé.
  11. Je ne comprends pas bien ta question ?!
  12. Lazer

    Panneau d'évènements

    Hum, alors là je n'ai pas d'idée. Par contre tu sembles parler de coupure de courant... si c'est fréquent, cherche pas plus loin, tu as surement corrompu le système. Essaye de contacter le support Fibaro pour voir si ils peuvent corriger à distance. Et dans tous les cas, installes un petit onduleur.
  13. Lazer

    Panneau d'évènements

    Ouais mal là ça ne doit pas être ça, puisqu'il ne voit pas les champs pour sélectionner les heures (en haut du panneau d'événement)
  14. Lazer

    Panneau d'évènements

    Etrange.... Quelques pistes : - rebooter la box - vider le cache du navigateur - changer de navigateur
  15. Lazer

    Json T_end

    Bloug, désolé, toujours pas de code LUA, mais j'ai rédigé un mini tuto qui, je l'espère, t'aidera un peu à y voir plus clair :
  16. Voilà : Par contre c'est fait à la va-vite, je n'ai pas testé le code LUA, j'espère qu'il n'y a pas d'erreur de syntaxe. N'hésitez par à me corriger. Sinon pour @J3R3M, comme tu peux le voir, cela intrigue beaucoup de monde, exemples : https://www.domotique-fibaro.fr/topic/9055-incomprã©hension-dans-les-nethttpclient/ https://www.domotique-fibaro.fr/topic/10888-nethttpclient-contourner-lasynchrone-cest-possible/ https://www.domotique-fibaro.fr/topic/10900-comportement-du-timeout-dans-les-nethttpclient/ https://www.domotique-fibaro.fr/topic/11558-récupérer-les-données-retournées-par-nethttpclient/
  17. Utilisation de net.HTTPClient() asynchrone - dans une scène en LUA sur HC2/HC3 - - dans un QuickApp sur HC3 - Dans les scènes, Fibaro ne nous laisse pas le choix, dès que l'on veut faire des appels HTTP, on est obligé d'utiliser la fonction asynchronse net.HTTPClient(). La fonction Net.FHTTP() synchrone utilisée dans les VD n'est pas disponible dans les scènes. Toutefois, l'avantage de net.HTTPClient() est d'accepter les connexions sécurisées HTTPS devenues majoritaires sur Internet. Exemple de code simple pour une requête de type GET local http = net.HTTPClient() http:request("http://1.2.3.4/url", { success = function(response) if response.status == 200 then print('OK, réponse : '.. response.data) else print("Erreur : status=" .. tostring(response.status)) end end, error = function(err) print("Erreur : " .. err) end, options = { method = 'GET' } }) L'exemple suivant effectue une requête de type POST permettant d'envoyer des données vers le site distant. De plus, la fonction success() récupère les données de type JSON en vue d'un traitement ultérieur (notez que les données envoyées vers le site Web et les données reçues depuis le site Web sont différentes, cela dépend de l'application qui tourne sur le site) : -- Les données à envoyer au formulaire local myJson = { "couleurs": { [1] = "bleu", [2] = "blanc", [3] = "rouge" }, "fruits": { [1] = "pomme", [2] = "banane" }, } -- Appel HTTPS local http = net.HTTPClient() http:request("https://www.domaine.com/url", { success = function(response) if response.status == 200 then if response.data and response.data ~= "" then print('Retour : '.. response.data) local jsonTable = json.decode(response.data) -- Parcours de la table JSON local k, v for k, v in pairs(jsonTable) do print("key = " .. k .. " - type(v) = " .. type(v)) end -- Ici la suite du code, exécuté en asynchrone, donc après la fin de l'exécution du code appelant http:request() -- ... else print("Error : empty response data") end else print("Erreur : status=" .. tostring(response.status)) end end, error = function(err) print("Erreur : " .. err) end, options = { method = 'POST', timeout = 5000, checkCertificate = false, headers = { ["content-type"] = 'application/x-www-form-urlencoded;', ["Authorization"] = "Basic YWRtaW46cGFzc3dvcmQ=" -- username:password encodé en Base64 (admin:password) }, data = json.encode(myJson) } }) -- Ici la suite du code, exécuté en synchrone, donc avant l'exécution du contenu de la fonction success() -- ... On remarque dans les options que l'on peut choisir les paramètres suivants : method : obligatoire : GET ou PUT ou POST ou DELETE timeout : facultatif : délai d'attente en millisecondes avant échec de la requête. Peut être utile avec certains serveurs un peu trop lents à répondre. Dans le doute, inutile d'utiliser ce paramètre. checkCertificate : facultatif : true ou false, permet d'ignorer les alertes de sécurité sur les certificats auto-signés (non reconnus pas une autorité de certification approuvée) headers : facultatif : permet de passer le(s) en-tête(s) HTTP de son choix vers le site Web distant. Si vous ne savez pas ce qu'est un Header, c'est que vous n'avez probablement pas besoin d'envoyer de header, donc ignorez ce paramètre. data : facultatif : ce sont les données à envoyer dans les formulaires POST et PUT sous forme de chaine de caractères. Donc si les données sont de type tableau JSON, il faut les encoder avec json.encode(). Asynchronisme net.HTTPClient() est asynchrone, le code dans les fonctions success() et error() appelées en callback s'exécute toujours après la fin de l'exécution du thread principal. Quand on commence à programmer en asynchrone, il ne faut plus jamais utiliser de fonctions synchrones comme sleep(), sous peine de comportement surprenant. Préférer à la place l'emploi de la fonction settimout() qui est elle-même asynchrone (chercher les exemples sur le forum) La bonne pratique quand on programme en asynchrone est la suivante : Après un appel à net.HTTPClient(), le code devrait se terminer le plus rapidement possible afin de laisser la main à la fonction success() appelée en callback de net.HTTPClient(). La suite du code se déroule donc dans la fonction success(). Celle-ci, à sont tour, peut faire d'autres appels à net.HTTPClient() ou settimeout() pour déclencher de nouveaux appels de fonctions en callback asynchrone. Etc... C'est la technique que j'ai employé dans mes scènes Watchdog et Yamaha MusicCast, partagées sur le forum. C'est une certaine gymnastique qui n'est pas évidente au début, et oblige à revoir toute la structure de son code LUA. En complément je vous invite à lire ce sujet sur la protection des requêtes http avec pcall() :
  18. Oui maitre
  19. C'est un sujet qui revient souvent sur le forum net.HTTPClient() est asynchrone, le code dans les fonctions appelées en callback s'exécute toujours après la fin de l'exécution du thread principal. Quand on commence à programmer en asynchrone, il ne faut plus jamais utiliser de fonctions synchrones comme sleep(), sous peine de comportement surprenant comme tu l'as constaté. Préférer à la place l'emploi de la fonction settimout() qui est elle-même asynchrone (chercher les exemples sur le forum) La bonne pratique quand on programme en asynchrone est la suivante : Après un appel à net.HTTPClient(), le code devrait se terminer le plus rapidement possible afin de laisser la main à la fonction success() appelée en callback de net.HTTPClient(). La suite du code se déroule donc dans la fonction success(). Celle-ci, à sont tour, peut faire d'autres appels à net.HTTPClient() ou settimeout() pour déclencher de nouveaux appels de fonctions en callback asynchrone. Etc... C'est la technique que j'ai employé dans mes scènes Watchdog et Yamaha MusicCast, que tu peux étudier par exemple. C'est une certaine gymnastique qui n'est pas évidente au début, et oblige à revoir toute la structure de son code LUA. Malheureusement Fibaro ne nous laisse pas le choix dans les scènes, dès que l'on veut faire des appels HTTP, on est obligé d'utiliser la fonction asynchronse net.HTTPClient(). La fonction Net.FHTTP() synchrone utilisée dans les VD n'est pas disponible dans les scènes.
  20. oui il y a un popup qu'il faut autoriser. Essaye avec un autre navigateur.
  21. Lazer

    Google Home

    La coupe du monde de quoi ?
  22. Lazer

    Google Home

    Les HC2 aussi est ultra stable... ça fait 2 ou 3 mois qu'on n'a plus aucune mise à jour, pas de risque de régression Bah nous on fait de la domotique grand public de 2018 maintenant.... on a un installé le skill Bruit de pet sur Alexa ce soir.... voilà voilà.... il y en a au moins une qui a bien rigolé
  23. Lazer

    Fibaro Intercom

    J'ai failli m'étrangler :
  24. Lazer

    Google Home

    Merci Jojo, mais c'est un phénomène assez connu sur tous les forums, la première page est rarement lue, pourtant elle est censée rassembler les infos utiles à lire en premier. Pas grave, il y a toujours une bonne âme pour répéter Heureusement que tu suis Tu reviens quand tu veux chez Fibaro
  25. Lazer

    Json T_end

    désolé c'était mal formulé Mais c'est en substance ce que te dis le message d'erreur.
×
×
  • Créer...