Aller au contenu

flacon030

Membres confirmés
  • Compteur de contenus

    1 378
  • Inscription

  • Dernière visite

  • Jours gagnés

    37

flacon030 a gagné pour la dernière fois le 4 décembre

flacon030 a eu le contenu le plus aimé !

À propos de flacon030

  • Date de naissance 18/02/1972

Profile Information

  • Sexe :
    Homme
  • Ville :
    Le tignet
  • Intéret :
    domotique, cinéma, technologie
  • Box
    Home Center 3
  • Version
    HC3 5.18

Visiteurs récents du profil

8 595 visualisations du profil

flacon030's Achievements

Collaborator

Collaborator (7/14)

  • Reacting Well Rare
  • Conversation Starter Rare
  • Dedicated Rare
  • Very Popular Rare
  • First Post Rare

Recent Badges

214

Réputation sur la communauté

  1. flacon030

    QuickApps - Nuki

    merci pour ces retour d'experience c'est pour quel version de serrure? Mezrci
  2. Encore une petite modification de mon installation électrique Je viens de placer un inverseur de source entre l'onduleur et le disjoncteur abonné En cas de coupure EDF l'onduleur reprend automatiquement la charge de la maison, si bien sur il y a de la production solaire et ou de l’énergie dans les batteries J'en ai profité pour faire une refonte de l’armoire informatique et du tableau électrique
  3. Bonjour Je vous propose un QA qui permet d'envoyer vos index de production vers le site dbpv Il faut bien évidement avoir un compte sur leur site https://www.bdpv.fr/fr/ il faudra modifier le code du QA pour que cela puisse fonctionner tel que: l'id du compteur de production photovoltaïque, le user, et l'api key J'ai mis en place un bouton pour envoyer manuellement les index, si non ils partent automatiquement a 4h00 du matin (possible de le modifier dans le code) Il y a un compte a rebours pour savoir quant partira le prochain index Et j'ai mis un status quant les données sont bien reçue par le site DBPV (visible aussi dans le debug) Mise a jour du QA en version 1.3 J'ai ajouté le compte a rebourgs dynamique qui s'actualise toutes les minutes J'ai aussi ajouter les variables globale pour que vous puissiez mettre vos données dans les variables sans toucher au code Je ne suis pas sur qu'elles se crées seul, si besoin les mettre manuellement DEVICE_ID Variable de texte ID du compteur de production en KW (le Qa fait la conversion pour avoir des Wh comme le demande le site dbpv) BDPV_USER Variable de texte nom du user BDPV_API_KEY Variable de texte APIKEY du compte dbpv BDPV_SOURCE Variable de texte homeassistant (texte a mettre) BDPV_TYPE Variable de texte onduleur (texte a mettre) NEXT_SEND Variable de texte valeur du compte a rebourgs (ne rien mettre dans cette variable) STATUS_BDPV Variable de texte retour json de dbpv si tous se passe comme il faut (ne rien mettre dans cette variable) Si tous se passe bien, vous devriez voir dans le debug le code suivant si vous faite un envoie manuel [05.12.2025] [18:38:01] [DEBUG] [QUICKAPP1169]: QuickApp BDPV initialisé [05.12.2025] [18:40:32] [TRACE] [QUICKAPP1169]: onAction: {"actionName":"UIAction","manual":true,"deviceId":1169,"args":["onReleased","button_ID_0_1"]} [05.12.2025] [18:40:32] [TRACE] [QUICKAPP1169]: UIEvent: {"elementName":"button_ID_0_1","values":[],"eventType":"onReleased","deviceId":1169}[05.12.2025] [18:40:32] [DEBUG] [QUICKAPP1169]: Index compteur (kWh) : 7573.4520627778 [05.12.2025] [18:40:32] [DEBUG] [QUICKAPP1169]: Index converti (Wh) : 7573452 [05.12.2025] [18:40:32] [DEBUG] [QUICKAPP1169]: URL envoyée à BDPV : https://www.bdpv.fr/webservice/majProd/expeditionProd_v3.php?util=(nom du user)&apiKey=(N°APIKEY)c&source=homeassistant&typeReleve=onduleur&index=7573452 [05.12.2025] [18:40:33] [DEBUG] [QUICKAPP1169]: BDPV : {"prodMoisKwh" : "14","prodJourWh" : "5041","prodJourKwh" : "5","codeRetour" : "4","texteRetour" : "OK - Mise à jour de la production. [05.12.2025] [18:41:01] [DEBUG] [QUICKAPP1169]: Envoi index dans 09h 18min DBPV_V1.3.fqa
      • 2
      • Like
  4. Bon une fois de plus merci chatgpt pour son aide Je viens de faire un QA qui envoie mes données a 4:00 les index de production de mon installation -- QuickApp : BDPV Updater HC3 -- Version : 1.3 avec compte a rebourg dynamique et ajout des variables -- ================================ -- INITIALISATION -- ================================ function QuickApp:onInit() self:debug("QuickApp BDPV initialisé") -- Lecture des variables éditables self.DEVICE_ID = tonumber(self:getVariable("DEVICE_ID")) self.BDPV_USER = self:getVariable("BDPV_USER") self.BDPV_API_KEY = self:getVariable("BDPV_API_KEY") self.BDPV_SOURCE = self:getVariable("BDPV_SOURCE") or "homeassistant" self.BDPV_TYPE = self:getVariable("BDPV_TYPE") or "onduleur" if not self.DEVICE_ID then self:error("ERREUR : DEVICE_ID invalide dans les variables !") end -- Bouton "Envoyer maintenant" self:updateView("sendButton", "text", "Envoyer maintenant") -- Planification automatique à 4h00 self:scheduleDailySend(4, 0) end -- ================================ -- BOUTON MANUEL -- ================================ function QuickApp:sendNow() self:sendBDPV() end -- ================================ -- RAFRAICHISSEMENT COMPTE À REBOURS -- ================================ function QuickApp:startCountdownUpdater(nextRun) -- Stoppe l'ancien timer si présent if self.countdownTimer then clearInterval(self.countdownTimer) end -- Mise à jour chaque minute self.countdownTimer = setInterval(function() local now = os.time() local remaining = nextRun - now if remaining < 0 then remaining = 0 end local minutesTotal = math.floor(remaining / 60) local hours = math.floor(minutesTotal / 60) local minutes = minutesTotal % 60 local text = string.format("Envoi index dans %02dh %02dmin", hours, minutes) -- Mise à jour dans l’UI self:updateView("nextSendLabel", "text", text) -- Mise à jour dans une variable self:setVariable("NEXT_SEND", text) -- >>> NOUVEAU : DEBUG DU COMPTE À REBOURDS <<< self:debug(text) end, 60 * 1000) -- Forcer une première mise à jour immédiate (pour éviter d’attendre 1 min) local minutesTotal = math.floor((nextRun - os.time()) / 60) local hours = math.floor(minutesTotal / 60) local minutes = minutesTotal % 60 local text = string.format("Envoi index dans %02dh %02dmin", hours, minutes) self:updateView("nextSendLabel", "text", text) self:setVariable("NEXT_SEND", text) -- DEBUG immédiat self:debug(text) end -- ================================ -- PLANIFICATION QUOTIDIENNE -- ================================ function QuickApp:scheduleDailySend(h, m) local now = os.time() local t = os.date("*t") local nextRun = os.time({ year = t.year, month = t.month, day = t.day, hour = h, min = m, sec = 0 }) -- Si l'heure est déjà passée → lendemain if nextRun <= now then nextRun = nextRun + 24 * 60 * 60 end local delaySeconds = nextRun - now -- Démarre la mise à jour dynamique du compte à rebours self:startCountdownUpdater(nextRun) -- (Première mise à jour immédiate) self:updateView("nextSendLabel", "text", string.format("Envoi index dans %02dh %02dmin", math.floor(delaySeconds / 3600), math.floor((delaySeconds % 3600) / 60) ) ) -- Planification de l'envoi réel setTimeout(function() self:sendBDPV() self:scheduleDailySend(h, m) end, delaySeconds * 1000) end -- ================================ -- ENVOI VERS BDPV -- ================================ function QuickApp:sendBDPV() -- Lecture compteur HC3 (kWh) local raw = fibaro.getValue(self.DEVICE_ID, "value") raw = tostring(raw):gsub(",", ".") local index_kwh = tonumber(raw) if not index_kwh then local msg = "Valeur compteur invalide" self:error(msg) self:updateView("statusLabel", "text", msg) self:setVariable("STATUS_BDPV", msg) return end -- Conversion en Wh local index_wh = math.floor(index_kwh * 1000 + 0.5) self:debug("Index compteur (kWh) : " .. index_kwh) self:debug("Index converti (Wh) : " .. index_wh) -- Construction URL local url = "https://www.bdpv.fr/webservice/majProd/expeditionProd_v3.php" .. "?util=" .. tostring(self.BDPV_USER) .. "&apiKey=" .. tostring(self.BDPV_API_KEY) .. "&source=" .. tostring(self.BDPV_SOURCE) .. "&typeReleve=" .. tostring(self.BDPV_TYPE) .. "&index=" .. tostring(index_wh) self:debug("URL envoyée à BDPV : " .. url) -- Envoi HTTP GET local http = net.HTTPClient() http:request(url, { options = { method = "GET", timeout = 8000 }, success = function(response) local cleaned = response.data:gsub('{"codeRetour" ?: ?"[^"]*",?"texteRetour" ?:?"?', "") cleaned = cleaned:gsub('"}$', "") local msg = "BDPV : " .. cleaned self:debug(msg) self:updateView("statusLabel", "text", msg) self:setVariable("STATUS_BDPV", msg) end, error = function(err) local msg = "Erreur : " .. tostring(err) self:error(msg) self:updateView("statusLabel", "text", msg) self:setVariable("STATUS_BDPV", msg) end }) end
  5. il serait possible d'avoir un exemple Merci
  6. Bonjour a tous Je voudrais envoyer tous les nuit vers 4h du matin l'index de production de mes panneaux vers le site dbpv La requête est la suivante https://www.bdpv.fr/webservice/majProd/expeditionProd_v3.php?util=xxxx-jc&apiKey=xxxx&source=homeassistant&typeReleve=onduleur&index=7 562738 ?util (nom d'utilisateur sur le site) apikey (apikey pour mise a jour de la production) index de production (7562738) comment le faire selon vous ? L'id de mon compteur est le 600 sachant que la valeur qu'attend dbpv doit être en Wh sans virgule
  7. flacon030

    QuickApps - Nuki

    Merci pour ces infos du coup quant est t'il du QA sur les nouvelles versions?
  8. flacon030

    Serrure Danalock V3

    Bonjour a tous Pour ceux d'entre vous qui on des danalock, ces dernières fonctionnent toujours? Car j'en avais deux et les deux sont tombé en panne La première en juin de cet année que j'ai remplacé, et la 2eme il y a quelques jours Elles avait environ 6 ans Pour mon cas pour les deux les symptômes ont été les mêmes A savoir un décalage de la position des butées d'ouverture au bout des quelques cycles la serrure ne bouge plus et reste fermé Après une re calibration cela fonctionne a nouveau et se décale a nouveau dans le temps après quelques utilisations Et je voie qu'il est de plus en plus difficile de se procurer de nouvelles serrure en z-wave Du coup je me pose la question de la remplacé par une nuki ou autre en z-wave Quel solution avez vous? Merci
  9. flacon030

    QuickApps - Nuki

    Bonjour a tous J'ai une de mes deux danalock qui ne fonctionne plus comme il faut La question se pose de savoir si je la remplace par une danalock ou une nuki Les dernières version sont compatible Z-Wave chez nuki ou il faut un bridge? Pour ceux d'entre vous qui ont des nuki cela vous convient t'il? quels sont ses points faibles? que donne son autonomie? Ou en trouver une? Merci
  10. Bonjour En principe cela ne pose pas de problème, il faudra juste plus de temps pour recharger la batterie
  11. je commence a maitrisé et a obtenir les résultats que je veux, c'est plutôt plaisant
  12. Mise a jour des graphes de précipitation mensuel et annuel qui fonctionne a présent Sur ce coup merci chat GPT, sans cette solution je n'aurais pas trouvé Voici le code pour le cumul mensuel import "date" // --- 1️⃣ Max journalier --- dailyMax = from(bucket: "HC3") |> range(start: -365d) |> filter(fn: (r) => r["_measurement"] == "climate") |> filter(fn: (r) => r["_field"] == "value") |> filter(fn: (r) => r["deviceID"] == "1114") |> filter(fn: (r) => r["deviceName"] == "🌧 Jardin Pluie 24h") |> aggregateWindow(every: 1d, fn: max, createEmpty: false) |> keep(columns: ["_time", "_value"]) // --- 2️⃣ Ajouter un identifiant AAAA-MM avec mois sur 2 chiffres --- dailyWithMonth = dailyMax |> map(fn: (r) => ({ _time: r._time, _value: r._value, year: string(v: date.year(t: r._time)), month: date.month(t: r._time) })) |> map(fn: (r) => ({ _time: r._time, _value: r._value, monthID: r.year + "-" + (if r.month < 10 then "0" + string(v: r.month) else string(v: r.month)) })) // --- 3️⃣ Regrouper par mois et cumuler --- monthly = dailyWithMonth |> group(columns: ["monthID"]) |> reduce( identity: { total: 0.0 }, fn: (r, accumulator) => ({ total: accumulator.total + r._value }) ) |> map(fn: (r) => ({ _time: r.monthID, _value: r.total })) |> sort(columns: ["_time"]) monthly Et voici le code pour un cumul annuel sur une période de 5 ans import "date" // --- 1️⃣ Max journalier sur 5 ans --- dailyMax = from(bucket: "HC3") |> range(start: -5y) // les 5 dernières années |> filter(fn: (r) => r["_measurement"] == "climate") |> filter(fn: (r) => r["_field"] == "value") |> filter(fn: (r) => r["deviceID"] == "1114") |> filter(fn: (r) => r["deviceName"] == "🌧 Jardin Pluie 24h") |> aggregateWindow(every: 1d, fn: max, createEmpty: false) |> keep(columns: ["_time", "_value"]) // --- 2️⃣ Ajouter l'année --- dailyWithYear = dailyMax |> map(fn: (r) => ({ _time: r._time, _value: r._value, year: string(v: date.year(t: r._time)) })) // --- 3️⃣ Grouper par année et cumuler les max journaliers --- yearly = dailyWithYear |> group(columns: ["year"]) |> reduce( identity: { total: 0.0 }, fn: (r, accumulator) => ({ total: accumulator.total + r._value }) ) |> map(fn: (r) => ({ _time: r.year, _value: r.total })) |> sort(columns: ["_time"]) yearly
  13. Une fois de plus en hiver les serveur netatmo sont tombés Voila pourquoi je fais tous pour supprimé ces capteurs, heureusement il n'en reste plus qu'un pour ma part a être remplacé La capteur devrait arrivé dans un mois, car en rupture de stock
  14. Bonjour Il est possible d'envoyer une requête http sur une HC3 pour qu'une scène puisse s’exécute de ce type par exemple http://192.168.1.92/api/scenes/140/execute mais comment y mettre le user et le password de la HC3? Merci
  15. flacon030

    Support Gea

    bonjour je voudrais ajouter un intervalle periodique a cette commande Je voudrais qu'elle ne soit fonctionnel que du 1er juin au 30 septembre Merci GEA.add(true, 30, "ouverture volets Ch1 16H35", {{"Time", "16:35", "16:36"}, {"Open", id["ROLLER_CH1"], 92}})
×
×
  • Créer...