Aller au contenu

couillerot

Membres confirmés
  • Compteur de contenus

    1 503
  • Inscription

  • Dernière visite

Tout ce qui a été posté par couillerot

  1. couillerot

    questions de newbie !

    Autre question qui n'a rien à voir... voilà, je souhaite réaliser un petit QA basé sur l'api de weatherbit qui s'orienterait plutôt vers les prévisions de précipitations pour mon arrosage auto. j'arrive bien à extraire les datas mais je coince sur le comment récupérer toutes les variables "precip"... du data ??? et je n'y connais absolument rien en table s'il s'agit de cela... je sais bien que cela est très basique comme demande mais je ne souhaite qu'apprendre et pouvoir bricoler deux ou trois trucs merci Stef voici un extrait du data :
  2. couillerot

    Conso RAM HC3

    55% d'espace en ram utilisée ? je suis à 23% d'espace ram utilisée. Stef
  3. En complément de la version Eco Devices Light "T", voici la version "C" soit le compteur d'eau (enfin dans mon cas) . Ce QA est inspiré d'un VD existant sur HC2 dont je ne connais pas l'auteur. Pour l'installation, rien de plus simple : - installer le QA - renseigner l'adresse IP dans le tableau des variables ("ip_Ecodevice") et l'id utilisateur pour recevoir le rapport journalier ("id_Mail) - c'est tout... Pour un calcul au plus juste, ce QA prend en compte toutes les taxes annexes (qui seront à modifier selon : cf taxes et abonnement dans la partie du code "Calcul des prix HT") Un rapport journalier est envoyé automatiquement avec la conso du jour et le coût. Un reset auto de la conso est effectué tous les soirs à minuit. function QuickApp:onInit() self:updateProperty("deviceIcon", 1044) self.http = net.HTTPClient({timeout=3000}) self:loop() end function QuickApp:loop() local interval = 60 -- Refresh ipecodevice = self:getVariable("ip_Ecodevice") idmail = self:getVariable("id_Mail") self.http:request("http://"..ipecodevice.."/api/xdevices.json?cmd=10", { success = function(response) if response.status == 200 then response = json.decode(response.data) self:setVariable("eau", tostring(response.INDEX_C1)) --------------------------------------- --------------------------------------- --------- CALCULS DES PRIX HT --------- --------------------------------------- --------------------------------------- ------------------------------------------- -- VARIABLES POUR CALCUL DU COUT (en HT) -- cout_consommation = 0.001603 --++ (consommation eau / fond renouvellement distribution) cout_abonnement = 0.1780 --++ cout_assainissement = 0.00003 --++ cout_modernisation = 0.00015 --++ cout_pollution = 0.000316 --++ (Pollution / Prerservation) cout_collecte = 0.1287 --++ cout_consocollecte = 0.0024 --++ ------------------------------------------- ------------------------------------------- -- TVA local TVA5_5 = 1.055 local TVA10 = 1.10 ---------------------------------------- local function roundToNthDecimal(num, n) local mult = 10^(n or 0) return math.floor(num * mult + 0.5) / mult end -- consommation eau / fond renouvellement distribution TVA 5_5 --++ local function consommation(L) local cout = tonumber(L * cout_consommation * TVA5_5) return cout end -- redevance abonnement Distrib Eau TVA 5_5 --++ local function abonnement(J) local abonnement = tonumber(J * cout_abonnement * TVA5_5) return abonnement end -- taxe assainissement TVA 10 --++ local function assainissement(L) local assainissement = tonumber(L * cout_assainissement * TVA10) return assainissement end -- taxe modernisation TVA 10 --++ local function modernisation(L) local modernisation = tonumber(L * cout_modernisation * TVA10) return modernisation end -- taxes Pollution / Prerservation TVA 5_5 --++ local function pollution(L) local pollution = tonumber(L * cout_pollution * TVA5_5) return pollution end -- Abonnement collecte eau TVA 10 --++ local function collecte(J) local collecte = tonumber(J * cout_collecte * TVA10) return collecte end -- Consommation collecte eau TVA 10 --++ local function consocollecte(L) local consocollecte = tonumber(L * cout_consocollecte * TVA10) return consocollecte end ---------------------------------------------------------- -------- CALCULS DES PRIX JOUR / MOIS / ANNEE ------------ ---------------------------------------------------------- local eau, _ = self:getVariable("eau") eau = tonumber(eau) local eau_jour, _ = self:getVariable("eau_jour") eau_jour = tonumber(eau_jour) local eau_mois, _ = self:getVariable("eau_mois") eau_mois = tonumber(eau_mois) local eau_annee, _ = self:getVariable("eau_annee") eau_annee = tonumber(eau_annee) local total = eau / 1000 -- local prixjour = ( euro * calc_jour) local calc_jour = (tonumber(eau) - tonumber(eau_jour)) self:setVariable("conso_jour", tostring(calc_jour)) -- local prixmois = ( euro * calc_mois) local calc_mois = (tonumber(eau) - tonumber(eau_mois)) --local prixannee = ( euro * calc_annee) local calc_annee = (tonumber(eau) - tonumber(eau_annee)) ---------- local prixjour = roundToNthDecimal( consommation(calc_jour) + assainissement(calc_jour) + modernisation(calc_jour) + pollution(calc_jour) + consocollecte(calc_jour) + collecte(1) + abonnement(1) ,2) jour = string.sub(prixjour, 1, 6) ---------- local prixmois = roundToNthDecimal( consommation(calc_mois) + assainissement(calc_mois) + modernisation(calc_mois) + pollution(calc_mois) + consocollecte(calc_mois) + collecte(30) + abonnement(30) ,2) mois = string.sub(prixmois, 1, 6) ---------- local prixannee = roundToNthDecimal( consommation(calc_annee) + assainissement(calc_annee) + modernisation(calc_annee) + pollution(calc_annee) + consocollecte(calc_annee) + collecte(365) + abonnement(365) ,2) annee = string.sub(prixannee, 1, 6) self:setVariable("prix_du_jour", tostring(prixjour)) self:updateProperty("log", ""..tostring(calc_jour).." L / " ..jour.. " €") self:updateView("labeleau", "text", "Index EAU au " ..(string.format(os.date("%d/%m/%Y"))).. " : " ..total.. " m³") self:updateView("labeleau_jour", "text", "Consommation d'EAU aujourd'hui : " ..calc_jour.. " Litres") self:updateView("labeleau_mois", "text", "Consommation du mois : " ..calc_mois.. " Litres soit " ..mois.. " €") self:updateView("labeleau_annee", "text", "Consommation de l'année : " ..calc_annee.. " Litres soit " ..annee.. " €") self:updateView("labelcout", "text", "Coût de l'EAU aujourd'hui : " ..jour.. " €") else print("Erreur : status=" .. tostring(response.status)) end end, error = function(error) self:debug('error: ' .. json.encode(error)) end }) self:refreshTime() fibaro.setTimeout(tonumber(interval) * 1000 * 2, function() self:loop() end) end ----------------------------------------------------------- function QuickApp:refreshTime() local currentDate = os.date("*t") local Jour = tonumber(os.date("%d", os.time())) local Mois = tonumber(os.date("%m", os.time())) local Annee = tonumber(os.date("%y", os.time())) local Heure = tonumber(os.date("%H", os.time())) local Minute = tonumber(os.date("%M", os.time())) ------------------------------------------------------------- ---------------- ENVOI DU RAPPORT JOURNALIER ---------------- ------------------------------------------------------------- if Heure == tonumber("23") and Minute == tonumber("58") then prixdujour = self:getVariable("prix_du_jour") consodujour = self:getVariable("conso_jour") local message = ("Coût : "..prixdujour.." €\nConsommation : "..consodujour.." litres") fibaro.call(tonumber(idmail), "sendEmail", "Consommation EAU maison du "..os.date("%d/%m/%Y"), message) fibaro.call(20, "sendEmail", "Consommation EAU Maison du "..os.date("%d/%m/%Y"), message) fibaro.sleep(60 * 1000) end -- Envoi index dans variable à minuit tous les jours if Heure == tonumber("00") and Minute == tonumber("00") then local compteur = self:getVariable("eau") self:setVariable("eau_jour", compteur) end -------------------------------------------- -- Envoi index au 1er du mois if Jour == tonumber("01") then local compteur = self:getVariable("eau") self:setVariable("eau_mois", compteur) end -------------------------------------------- -- Envoi index au 1er janvier if Jour == tonumber("01") and Mois == tonumber("01") then local compteur = self:getVariable("eau") self:setVariable("eau_annee", compteur) end fibaro.setTimeout(1000 * 60, function() self:refreshTime() end) end EcoDevice_Borne_C1.fqa Stef
  4. couillerot

    questions de newbie !

    ok, merci Lazer pour cette précision au moins je sais vers quoi je dois me diriger ou plutôt vers quoi je ne dois pas m'orienter : une impasse ! Stef
  5. couillerot

    questions de newbie !

    Autre question de newbie peut-on créer des "variables énumérées" (ou pseudo-énumérées via une extraction de chaine) avec le tableau des variables locales ? merci Stef
  6. couillerot

    HC3 & HC3L - 5.070.42 - Stable - 18/03/2021

    oui j'ai bien sélectionné "Obtenir l'heure su serveur NTP"... ??? étrange cette histoire... je vais changer de serveur, je vais voir si j'ai le même soucis... Stef
  7. couillerot

    HC3 & HC3L - 5.070.42 - Stable - 18/03/2021

    je ne sais pas si le problème a été évoqué mais la box perd chaque jour l'heure (et de plusieurs dizaines de minutes quelque fois) et je dois effectuer un reboot pour régler le bug ! je suis sur le serveur fr.pool.ntp.org Stef
  8. voici ce que je retiens de cette version : - effectivement les QA mettent un peu de temps à s'afficher (c'est plus rapide sur ios d'ailleurs) alors que les VD c'étaient de l'instantanée. - la partie supérieur est devenue quasi illisible (en version dark) : fond trop clair pour que les icons se détachent réellement ! - pas de catégories "Températures", "Caméras"... bref quand même des choses importantes qui pourraient augmenter le WAF de cette application car autant vous dire que ma moitié n'est pas du tout accros de cette version... (et je la comprends "un peu") - sur une tablette Huawei T5, c'est hyper lent : près de 8s pour afficher un QA !!!! vivement une réelle maj... Stef
  9. couillerot

    Qucik App : Thermostat fil pilote & Fibaro FGS v2.0

    Mise à jour da QA qui est désormais autonome, donc sans utilisation de scènes annexes Stef
  10. couillerot

    Door/sensor 2

    un reset factory peut-être ? Stef
  11. couillerot

    questions de newbie !

    marche pas mais c'est ok, j'ai pu contourner le probleme ! merci encore Lazer pour ta patience Stef
  12. couillerot

    questions de newbie !

    merci Lazer ! dans ce style là ? tonumber(fibaro.getGlobalVariable("Consigne_HC", 10) - 1)
  13. couillerot

    Multiple controle pour scene LUA

    de même que certaines conditions de temps peuvent se transformer en trigger (heure définie...), tandis que d'autres non... (intervalle de temps...) ???? Stef
  14. couillerot

    Multiple controle pour scene LUA

    c'est ce qui me semblait... étrange quand même cette gestion de zone de conditions/trigger limitée (?) Stef
  15. couillerot

    Multiple controle pour scene LUA

    à ce sujet, je bute sur un point à savoir une condition/trigger pour le déclenchement d'une scène, du genre : if valeur module id > valeur VG - 1 and valeur module id > valeur VG then... est-ce que je dois mettre cette partie de code dans la zone "actions" ? Stef
  16. couillerot

    recuperer un bouton QA dans une scene

    tu peux mettre ça dans une scène : fibaro.callUI(id_du_QA, "onReleased", "nom_du_bouton_off") Stef
  17. couillerot

    Banque Icones Hcl, HC2 et HC3

    ajout des icons des smoke / CO2 sensor (MAJ en page 1 de ce thread) Stef
  18. couillerot

    Banque Icones Hcl, HC2 et HC3

    ajout des icons flood sensor Stef
  19. couillerot

    Banque Icones Hcl, HC2 et HC3

    merci jojo Stef
  20. décidément, moi je n'accroche toujours pas... la page d'accueil est toujours aussi brouillonne. (et je ne dois pas être aussi un adepte des scrollings) Stef
  21. Voici donc la version 1.11 qui inclue dorénavant la version murale... Nouveautés : Changes and fixes in FIBARO Home Center 1.11: Adjust the visibility and order of favourite sections: cameras, heating - zones and thermostats, alarm zones, lights and roller blinds. Set the amount of lines and section visibility. Summary of the favourite rooms and home Group control the devices for the whole house or chosen rooms. check the state of sensors in the room summary or go to the detailed device list. Wall mode Zoom in by turning on the wall mode on the wall mounted device. Stef
  22. couillerot

    Quick App - Ecodevice v1

    merci Barelle ! une fois de plus très bonne soirée Ste
  23. couillerot

    Modeste installation de débutant

    Pour l'éclairage, à défaut de tirer des neutres tu peux utiliser des fibaro FGD par exemple qui n'en ont pas besoin pour fonctionner (par contre led = fibaro bypass) Stef
  24. couillerot

    Quick App - Ecodevice v1

    bon le QA semble ronronner pour le moment et madame est aux anges petit aparté : je souhaite avancer dans mes connaissances perso et utiliser une méthode simple pour extraire les données de l'Eco Devices. j'ai fait ceci mais ça coince quelque part... [30.03.2021] [16:38:27] [ERROR] [QUICKAPP445]: main.lua:3: attempt to index a nil value (global 'http') local address = "http://192.168.0.40" response = http:request(address, {"/api/xdevices.json?cmd=10"}, { checkCertificate = false, method = 'GET' } ) response = json.decode.data(response) fibaro.setGlobalVariable("eau", response.INDEX_C1) eau = getGlobalVariable("eau")
  25. couillerot

    Quick App - Ecodevice v1

    oui complètement ! (???) Stef
×