-
Compteur de contenus
1 511 -
Inscription
-
Dernière visite
-
Jours gagnés
69
Tout ce qui a été posté par couillerot
-
zut... {"status_code":429,"status_message":"Your request count (872) is over the allowed limit of 500 per day - Upgrade your key, or retry after 513.63333333333 minutes"}
-
merci Lazer, je l'avais déjà repérer depuis un bon moment Stef
-
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 :
-
55% d'espace en ram utilisée ? je suis à 23% d'espace ram utilisée. Stef
-
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
-
- 2
-
-
Quick App - Eco Devices Light v1.2 (Electricité)
couillerot a posté un sujet dans Quick App Developpeur
salut à tous, A des années lumières du superbe et complet QA de Barelle sur l'Eco Devices, voici une version light (et sans prétentions) spéciale HP / HC (un grand merci à Lazer pour son aide ;)) Pour l'installation, rien de plus simple : - télécharger le QA - renseigner dans le tableau des variables : * l'adresse IP de l'Eco Devices ("ip_Ecodevice") * le coût de l'abonnement / an ("tarifAbonnement") * le prix des heures Pleines / Creuses ("tarifHC" et "tarifHP") * l'id utilisateur pour recevoir le rapport journalier sur la consommation HC / HP et le coût total ("id_Mail") et c'est tout... ce QA prend en compte toutes les taxes annexes pour un calcul au plus juste (TCFE, CFPE et CTA). Un reset auto est effectué tous les soirs à minuit. Par défaut, ce QA pointe sur la borne T1. pour se loguer sur le T2, 3 lignes seront à modifier dans le code du QA (signalées). Compteur d'énergie (type EnergyMeter) : Compteur Energie.fqa Compteur de puissance (type PowerSensor) : Compteur Puissance.fqa Version 1.1 - ce QA est désormais reconnu comme compteur d'énergie par la HC3 (par défaut, il indique la conso instantanée en VA) - affichage du tarif en cours (donc heures pleines ou heures creuses) Version 1.2 - QA peut être considéré comme compteur d'énergie (type EnergyMeter) ou Compteur de puissance (type PowerSensor) Stef -
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
-
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
-
HC3 & HC3L - 5.070.42 - Stable - 18/03/2021
couillerot a répondu à un(e) sujet de Lazer dans Firmware
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 -
HC3 & HC3L - 5.070.42 - Stable - 18/03/2021
couillerot a répondu à un(e) sujet de Lazer dans Firmware
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 -
Nouvelle application mobile pour smartphone Fibaro Home Center / Yubii Home Center
couillerot a répondu à un(e) sujet de fredokl dans Applications Smartphones et Tablettes
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 -
Qucik App : Thermostat fil pilote & Fibaro FGS v2.0
couillerot a répondu à un(e) sujet de couillerot dans Quick App Developpeur
Mise à jour da QA qui est désormais autonome, donc sans utilisation de scènes annexes Stef -
un reset factory peut-être ? Stef
-
marche pas mais c'est ok, j'ai pu contourner le probleme ! merci encore Lazer pour ta patience Stef
-
merci Lazer ! dans ce style là ? tonumber(fibaro.getGlobalVariable("Consigne_HC", 10) - 1)
-
salut à tous, je bute sur ce morceau de code et je n'en comprends pas la cause... if (fibaro.getGlobalVariable("Etat_Consigne_HC") == "ACTIVE") and ( (tonumber(fibaro.getValue(idTemp, "value")) >= tonumber(fibaro.getGlobalVariable("Consigne_HC") - 1) and tonumber(fibaro.getValue(idTemp, "value")) <= tonumber(fibaro.getGlobalVariable("Consigne_HC")) ) ) [19.04.2021] [17:38:00] [ERROR] [QUICKAPP690]: main.lua:77: bad argument #2 to 'tonumber' (base out of range) et ça m'énerve de ne pas pouvoir me débrouiller seul car ça doit être un truc tout c.n !!! Stef
-
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
-
c'est ce qui me semblait... étrange quand même cette gestion de zone de conditions/trigger limitée (?) Stef
-
à 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
-
tu peux mettre ça dans une scène : fibaro.callUI(id_du_QA, "onReleased", "nom_du_bouton_off") Stef
-
-
ajout des icons flood sensor Stef
-
merci jojo Stef
-
Nouvelle application mobile pour smartphone Fibaro Home Center / Yubii Home Center
couillerot a répondu à un(e) sujet de fredokl dans Applications Smartphones et Tablettes
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 -
Nouvelle application mobile pour smartphone Fibaro Home Center / Yubii Home Center
couillerot a répondu à un(e) sujet de fredokl dans Applications Smartphones et Tablettes
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