-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
Lol, non, c'est des fausses données :-) Etrange ton erreur car j'ai copié le code du forum dans ma scène afin d'être sà»re. Vérifie la clé et les adresses stp ... éventuellement, tu peux faire directement l'url dans un navigateur pour être sà»re. Pour plus d'info .. c'est ICI : https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters Par exemple pour préciser le mode : Train, il suffit d'ajouter "&mode=transit" après la clé. getResponseData("https://maps.googleapis.com/maps/api/distancematrix/json", "origins="..origine.."&destinations="..destination.."&language=fr-FR&key="..key .. "&mode=transit"
-
Edit : ce VD fait double emploi avec celui de Krikroff : Waze Calculator Je n'ai malheureusement pas le temps de faire un joli tuto, mais voici le gros du sujet : Connaitre le temps estimé de trajet entre votre domicile et votre travail. L'idée étant d'être averti en cas perturbation. Ce code s'appuie sur les services Google Maps. Voici donc le VD et l'icone en pièces jointes Ensuite il vous faut obtenir une clé API chez google ... voici le lien : https://developers.google.com/maps/documentation/geocoding/get-api-key Une fois la clé obtenue, il ne vous reste plus qu'à créer un scène LUA et y coller et adapter le code suivant. -- Votre clé API Google local key = "AIxxYYYzz-8sdI9BY2hEbrEO34IiNaQfELETtls" -- Votre adresse à la maison local origins = "18+rue+des+bois+Annecy+France" -- Votre adresse professionnel local destinations = "7+rue+de+la+fontaine+Geneva+Switzerland" -- Numéro du module virtuel précédemment crée/importé. local hc2_module_virtuel = 475 -- ------------------------------------------------------------------------ -- NE PAS TOUCHER -- ------------------------------------------------------------------------ local duree = "" local version = "V1.00" -- ------------------------------------------------------------------------ -- Affichage dans la console -- ------------------------------------------------------------------------ function log(message, force) force = force or false if (debug or force) then print("["..version.."] ".. __convertToString(message)) end end -- ------------------------------------------------------------------------ -- Interrogation de l'API -- ------------------------------------------------------------------------ function getResponseData(url, body, func) local httpClient = net.HTTPClient(); httpClient:request(url.."?"..body, { success = function(resp) func(json.decode(resp.data)) end, error = function(err) print('error = ' .. err) end, options = { method = 'GET' } }); end -- ------------------------------------------------------------------------ -- Mesures de l'unité interne -- ------------------------------------------------------------------------ -- ------------------------------------------------------------------------ -- Mesures de l'unité interne -- ------------------------------------------------------------------------ function getDuree(origine, destination, message, label) getResponseData("https://maps.googleapis.com/maps/api/distancematrix/json", "origins="..origine.."&destinations="..destination.."&language=fr-FR&key="..key, function(data) log("----------========== Module intérieur ==========----------") duree = data.rows[1].elements[1].duration.value log(message .. duree, true) fibaro:call(hc2_module_virtuel, "setProperty", label, math.floor(duree/60)) end ) end getDuree(origins, destinations, "Durée travail = ", "ui.Label1.value") getDuree(destinations, origins, "Durée maison = ", "ui.Label2.value") log("Last request : " .. os.date("%x - %X"), true) . Perso, j'utilise GEA pour executé cette scène toutes les 5 mn. . A vous de jouer et d'adapter tout cela à votre convenance. Durée_Trajets_(mn).vfib
-
Pardon, pas vu passer le message. Je calcul la consommation de pellets (en kilo) par rapport à la consommation électrique de mon poêle. local consoParHeure = {eco=0.6, p1=0.9, p2=1.4, p3=1.6, p4=2.2, p5=2.6} Je sais qu'en mode eco, il consomme 0.6kh/h, en vitesse P1 c'est 0.9Kg/h, ... En mode démarrage, il consomme comme P3. Voilà
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
Erreur 503. Pour ma part, j'avais donc beaucoup d'erreur 503. J'ai vidé tout mes "main loop" en déportant le code dans un scénario ou GEA. Suite à cela, j'ai encore eu quelques 503 (un à deux par jour). J'ai adapté un VD qui allait vérifier l'état de mon IPX tout les 5 secondes et qui stockait l'état des compteurs dans des "Variables Globales" qui avait pour effet de "trigger" un scénario qui mettais à jour 3 autres VD (un par compteur). L'adaptation fut simple, je n'utilise plus de VG et modifie directement le contenu de mes VD depuis le VD IPX. Depuis ce jour (4 jours), je n'ai plus aucune erreur 503 et une réactivité agréable. Ce corrobore la thèse de @Lazer concernant les accès concurrent.
-
Je voulais suivre ma consommation de pellets via ces graphiques, j'en ai profiter pour ajouter la conso de la mémoire ... mais je dois avouer, c'est fastidieux. J'ai créé les tables à la main, modifier je ne sais pas combien de fichier (js et php). J'aurais voulu en faire un tuto mais c'est trop risqué de se planter donc .. je passe mon tour, désolé. @Lazer ... bonne chance P.S. je ne suis pas certain que cela en vaille la peine de faire tant de modification juste pour connaitre la mémoire, maintenant assez stable. P.S 2 : Encore merci pour ce superbe outil. Fichiers modifiés : data_post.php, index.php, generate_trend.php, config.js, (graph.js), (database.sql) BDD : ajout des tables "domotique_memory" et "domotique_memory_day" Insertion dans domotique_type, domotique_device et domotique_device_type LUA : modification du bouton "Devices" pour créer data{ free, cache, used et cache} Ajout d'un bouton dans le VD pour capturer les valeur de api/diagnostics et les envoyers sur data_post.php Modification de la scène qui press sur le nouveau bouton
- 1 285 réponses
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
Je viens d'installer ce MAGNIFIQUE outil ... j'en profite pour te remercier J'ai eu la même erreur à la ligne 213 du bouton "Devices". J'ai juste ajouté id = tonumber(id) à la ligne 213 juste avant local deviceName = fibaro:getName(id) local roomID = fibaro:getRoomID(id) Et voilà . Merci encore @Lazer
- 1 285 réponses
-
- 2
-
- tuto multimã©dia
- graphiques
-
(et 2 en plus)
Étiqueté avec :
-
Pour vider mes main loop, j'ai déporté la plus part du code dans GEA. J'ai donc sauver GEA toutes les 5mn pendant 1 heure sans avoir aucune erreur 503. Rappelons que GEA est TOUJOURS en exécution. J'ai modifié aussi pas mal de scène qui était en exécution. En tout cas, chez moi, ce n'est pas la raison des erreurs 503. (Bien que j'en ai plus depuis 1 jours et 19h à contrario d'une part 1/2 heure) Dommage, une piste aurait été le bienvenu.
-
@Hysis En effet, il faudrait enlever le mot "Domotique"
-
@Yannick J'ai pas dis cela. Pour l'instant, je n'ai aucune idée d'où cela peux venir. Il est juste dis sur le forum officiel que les main loop exécutant des requêtes HTTP pouvait être la source du problème. Perso je pense que le problème est plus vaste, c'est pourquoi j'ai TOUT désactiver. Y compris le code que tu me montres. J'ai mis ce genre de code directement dans GEA. Il est aussi possible de faire des scènes à la place de main loop. Cela semble bien plus robuste.
-
J'ai pas creusé quel VD plantait la box ou pas, j'ai juste tout nettoyé. Sur le forum officiel, il n'y a aucune piste intéressante hormis "les main loop sont responsablent des erreur 503". Je me permet de dire que les pistes ne sont pas intéressante car les pistes en question parle de chose connu ... "ne jamais faire d'HTTP dans un main loop". Chose que je ne fais jamais. Le seul VD avec du HTTP (dans le main loop) était celui pour la Freebox. Je l'ai supprimé temporairement.
-
Pour ma part, je suis passé en 0.82b. Erreur 503 a outrance, environ toutes les 30mn (comme jojo). Suppression de tout les main loop ==> plus d'erreur 503. Je n'ai touché aucune scène, seulement les VD. Par contre, je n'ai AUCUN main loop qui effectue des requête HTTP ou quoi que ce soit comme code lourd.
-
Topic unique Fibaro - Motion Sensor - Fgms-001
Steven a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Pourtant, il devrait afficher 3 x 1 x pour %%autostart --- qui ne sert à rien 1 x lorsque le capteur s'active 1 x lorsque le capteur se désactive. -
Sans être désagréable, je pense qu'il y a beaucoup de "Hors sujet" dans le coin.
-
https://www.yr.no/ C'est assez fiable selon mon expérience.
-
Alors on c'est mal compris, mais très mal compris Mon VD ne modifie jamais les panneaux de chauffages, il les lit et par rapport à l'heure, il active ou désactive un module selon une température. Si tu clique sur le bouton vacances, le module ne va plus lire les panneaux de chauffage mais va prendre comme température de référence celle indiquée dans le code (8°). Il n'ira donc pas affecter tes LC13. En ce que je comprend, tu a lié un panneau de chauffage à chaq'un de tes LC13 ce qui est bien mais n'a rien à voir avec mon VD qui est fait, justement, pour les module qu'on ne peux pas lié à ces panneaux. Je te conseil de jeter un oeil ici : http://www.domotique-fibaro.fr/index.php/topic/916-gestion-simplifi%C3%A9e-du-chauffage-srt321-ssr303/ Courage
-
Oui, je parlais de moi
-
Normalement, tu as du faire ceci : 4) Variable globale : Il faut créer un variable globale "Chauffage" qui peux prendre les valeurs : ON, OFF et VACANCES Cette variable étant la même sur les 4 VD, si tu cliques sur le bouton [Vacances] d'un des 4 VD, cela affecter aussi les 3 autres VD (suffit d'attendre le rafraîchissement ou cliquer sur le bouton [Rafraîchir] pour s'en assurer).
-
Hors sujet, mais pour simplifier le code et sa maintenance : local numactivation_scene = {[5]=5, [7]=3, [6]=315, [8]=309} if (numactivation_scene[NumScene] ~= null) then fibaro:startScene(numactivation_scene[NumScene]) end
-
Je n'ai aucune certitude dans ce que je vais dire, mais c'est une possibilité : En v3, les instructions "fibaro:" executait directement le code implémenté par Fibar Group. En v4, les instructions "fibaro:" font appels aux APIs qui executent le code implémenté par Fibar Group. L'avantage est donc que le code est homogène, TOUT passe par les APIs ... l'inconvénient est qu'en v4, on passe par une couche supplémentaire relativement lente.
-
Cela ne fonctionnera pas, mais je suis pas sur que cela soit très clair.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Si ta variable est à100 (stop), les close ne seront pas exécuté, peu importe le sleep. A moins que quelque chose change ta variable pendant ces 20 secondes.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
--[[ %% properties %% events %% globals swip_r --]] MaVariable = fibaro:getGlobal("swip_r") fibaro:debug('value = ' .. MaVariable) if (MaVariable == "100") then fibaro:call(52, "stop") end fibaro:sleep(20000) if (MaVariable ~= "100") then fibaro:call(52, "close") end Pas besoin de stopper, il suffit de tester avant d'exécuter le "close".
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Tout au début ... ou Tout à la fin, comme tu préfères. P.S. Pour moi la 4.081 Beta m'est toujours proposée au téléchargement et ce .. même après un reboot.
-
Désolé de n'avoir répondu plutôt (vacances oblige). Très souvent quand Fibaro sort une nouvelle fonction, je pars du principe qu'elle ne sera plus là à la prochaine version. Donc j'implémente toujours un palliatif. Au tout début de tout GEA, tu peux inséré ce code : if (not HomeCenter) then HomeCenter = {} end if (not HomeCenter.SystemService) then HomeCenter.SystemService = {} end if (not HomeCenter.SystemService.reboot) then HomeCenter.SystemService.reboot = function() fibaro:call(123, "pressButton", "2") end end Qui va appuyer sur le bouton 2 du module virtuel 123. Dans lequel, j'ai un vieux code de Krikroff. HC2 = Net.FHttp("127.0.0.1", 11111) response, status, errorCode = HC2:POST("/api/settings/reboot", "data=reset") Et voilà .
-
Tu peux mettre la gestion des variables globales à la suite ... ainsi : (C'est vrai que les dates, c'est pas le top, mais il n'y a pas d'autre possibilité.) GEA.add(true, 30, "", { {"Dates", "01/01", "01/01"},{"Dates", "01/02", "01/02"},{"Dates", "01/03", "01/03"},{"Dates", "01/04", "01/04"},{"Dates", "01/05", "01/05"},{"Dates", "01/06", "01/06"}, {"Dates", "01/07", "01/07"},{"Dates", "01/08", "01/08"},{"Dates", "01/09", "01/09"},{"Dates", "01/10", "01/10"},{"Dates", "01/11", "01/11"},{"Dates", "01/12", "01/12"}, {"Time", "00:00", "00:03"}, {"CopyGlobal", "Eau_global_mois", "Eau_global_mois_pr"}, {"Global", "Eau_global_mois", "0"}}) GEA.add(true, 30, "", { {"Dates", "01/01", "01/01"}, {"Time", "00:00", "00:03"}, {"CopyGlobal", "Eau_global_annee", "Eau_global_annee_p"}, {"Global", "Eau_global_annee", "0"}}) GEA agit de manière séquentielle en respectant l'ordre il va donc traiter d'abord les 2 CopyGlobal (un après l'autre) puis mettre les variables à 0.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :