Aller au contenu

flacon030

Membres confirmés
  • Compteur de contenus

    1 352
  • Inscription

  • Dernière visite

  • Jours gagnés

    33

Tout ce qui a été posté par flacon030

  1. Non je n'ai jamais mis en place la vente de surplus, le but c'est qu'il y en ai le moins possible car vendre a 0,10€ alors que l'on acheté a 0,20€ je ne vois pas l’intérêt, je préfère optimiser au plus possible mes consommations Mon powerreducer c'est un elio4you standard, en triphasé pour le coté gestion énergie (donc avec 6 pince ampèremétrique) Avec ce module https://www.4-noks.com/shop/elios4you-it/elios4you-pro/
  2. Bonjour Voici une journée type parfaite On voie bien que la priorité est donné a la charge de la batterie, puis au ompilot Mais il me reste encore de l'exedant je vais donc a présent pour voir avec certaines condition a mettre la climatisation en route pour cet été Les choses avance dans le bon sens
  3. Merci c'est bon J'ai juste du ajouter : "formula pour avoir le bon résultat affiché Par contre les TOR ne sont vraiment pas bon pour les faibles Consommation sur le RT2 Je m'explique, pour 5W sur mon SPA par exemple, il affiche 240W??, pour 500W il affiche 445W, se qui est pas trop mal, et pour 1800W j'ai environ 1750W Et c'est pareil avec les autre TOR J'ai fait des mesure avec une pince ampèremétrique et un wallplug qui eux me donnent les bonnes valeurs {device = {name = "Conso cuisine", type = "PowerMeter"}, value = {command = "Get", argument = "S" , pin = "P3_SSP1", formula = function(x) return tools:round(x*1000, 0) end}}, {device = {name = "Fronius Ompilot", type = "PowerMeter"}, value = {command = "Get", argument = "S" , pin = "P4_SSP1", formula = function(x) return tools:round(x*1000, 0) end}}, {device = {name = "SPA", type = "PowerMeter"}, value = {command = "Get", argument = "S" , pin = "P5_SSP1", formula = function(x) return tools:round(x*1000, 0) end}},
  4. Voila enfin Je viens de recevoir mon ompilot fronius J'ai donc remplacer mon powerreducer par le ompilot (le powerreducer va être a la vente du coup) Se qui devrait me permettre d’optimiser ma production entre les batterie et le SPA en été et le chauffage du bureau pour ma secrétaire en hiver Car l'onduleur me permet de gérer en priorité la recharge de la batterie, et quant cette dernière est pleine, c'est le ompilot que prend la relève, se qui était pas trop le cas avec le powerreducer qui fonctionnait parfois alors que la batterie n’était pas encore chargé, et ce même avec l'utilisation de scenarios pour limité son utilisation Malgré tous ces derniers jour j'ai une autoconsommation de 90%, une autosuffisance de 86% se qui pas mal
  5. Bonjour J'essaie de mettre en place 3 nouveau chids a partir de l'ecdevice RT2 et des TOR 1 / 2 et 3 La puissance reste a zéro? Or se que je recherche dans ces nouveaux child se sont avant tous les puissances Ma configuration est elle bonne? {device = {name = "Conso cuisine", type = "PowerSensor"}, value = {command = "Get", argument = "S" , pin = "P3_SSP1"}}, {device = {name = "Fronius Ompilot", type = "PowerSensor"}, value = {command = "Get", argument = "S" , pin = "P4_SSP1"}}, {device = {name = "SPA", type = "PowerSensor"}, value = {command = "Get", argument = "S" , pin = "P5_SSP1"}},
  6. perso se sont mes deux modules aeotec ZW078 les plus anciens qui ne remonte plus leur consommation Ce n'est pas la première fois que cela arrive A un tel point que je pense que je vais placer un TOR et faire les mesures avec l'ecodevice RT2 a la place pour mesurer les consommation cas j'en ai marre que cela plante régulièrement
  7. voila a quoi cela ressemble Les modules sans template ont un triangle jaune pour les scène il y a une option "vrai durant la durée définie" Se qui peut être pas mal comme option de plus
  8. Bonjour Tu as un ohmpilot avec ton onduleur fronius? Car perso cela fait depuis le mois de septembre que j’essaie d'en avoir un Pour le moment je suis toujours avec un power reducer Mais avec la gestion des batterie je voudrais pouvoir définir des priorité, mais cela n'est possible que si j'ai un ohmpilot
  9. flacon030

    Fronius

    bonjour j'essaie de créer mes deux derniers child mais je n'ai aucune valeur qui remonte, elles reste a 0, or elles remonte bien dans mon panneau du QA (voir image ci dessus) J'ai mis un multilevelSensor avec une propriété en "unit" "%" mais je suis pas sur de faire se qu'il faut function QuickApp:createChildDevices() self:initChildDevices({ ["com.fibaro.multilevelSensor"] = sensor, }) self.childs.rel_AutonomyChild = self:initChildDevice("rel_AutonomyChild", "rel_Autonomy", "com.fibaro.multilevelSensor", sensor) self.childs.rel_AutonomyChild:updateProperty("unit", "%") self.childs.rel_SelfConsumptionChild = self:initChildDevice("rel_SelfConsumption", "rel_SelfConsumption", "com.fibaro.multilevelSensor", sensor) self.childs.rel_SelfConsumptionChild:updateProperty("unit", "%") function QuickApp:parseGeneralData(data) local fronius = json.decode(data) self:trace(data) self.rel_Autonomy = fronius.Body.Data.Site.rel_Autonomy or 0 self.rel_SelfConsumption = fronius.Body.Data.Site.rel_SelfConsumption or 0 self:updateView("mode", "text", "Mode: " .. fronius.Body.Data.Site.Mode) -- ----rel_SelfConsumption--- self:updateView("rel_SelfConsumption", "text", "Autoconsommation: " .. string.format("%.3f",fronius.Body.Data.Site.rel_SelfConsumption) .. " %") self.childs.rel_SelfConsumption:setValue(fronius.Body.Data.Site.rel_SelfConsumption) -- ----rel_Autonomy--- self:updateView("rel_Autonomy", "text", "Autonomy: " .. string.format("%.3f",fronius.Body.Data.Site.rel_Autonomy) .. " %") self.childs.rel_AutonomyChild:setValue(fronius.Body.Data.Site.rel_Autonomy)
  10. flacon030

    Fronius

    Merci Voici ce que j'obtiens a présent avec ce QA modifier Reste a réussir a faire fonctionner les deux child "autoconsommation" et "autonomie"
  11. flacon030

    Fronius

    Effectivement cela fonction en ajoutant * -1 et cela ne posera pas de problème pour cette fonctionnalité vu que la consommation de la maison ne peut pas être négative Mais pour ma culture personnel, je la place ou celle fonction dans mon code? Merci fonction math.abs() code du child if self.P_Load ~= json.null() then self:updateView("load", "text", "Conso maison: " .. string.format("%.3f", self.P_Load * -1) .. " W") self.childs.currentLoadChild:updateProperty("value", self.P_Load * -1) end
  12. flacon030

    Fronius

    J'ai la consommation de mon habitation qui remonte en négatif dans la tuile de mon child et donc invisible sous domocharts est il possible de la convertir en positif? if self.P_Load ~= json.null() then self:updateView("load", "text", "Conso maison: " .. string.format("%.3f", self.P_Load) .. " W") self.childs.currentLoadChild:updateProperty("value", self.P_Load) end
  13. flacon030

    Fronius

    Oui je vais essayer de remonter ces deux information dans le QA J'ai vu dans le code json que ces informations sont disponibles En faite j’essaie de remonter tous les info du code json de l'onduleur et des batteries pour avoir un QA le plus complet possible Body Data Inverters 1 Battery_Mode "normal" DT 99 E_Day 3682 E_Total 3896556 E_Year 1760809.25 P 699 SOC 48.79999923706055 Site BatteryStandby false E_Day 3682 E_Total 3896556 E_Year 1760809.2000000002 Meter_Location "grid" Mode "bidirectional" P_Akku 76.86 P_Grid 10.7 P_Load -709.7 P_PV 670 rel_Autonomy 98.49232069888684 rel_SelfConsumption 100 Version "12" Head RequestArguments {} Status Code 0 Reason "" UserMessage "" Timestamp "2023-05-13T12:04:39+02:00" Il reste un point que j’essaierais de régler plus tard c'est que les child de puissance puissent afficher les puissances comme le child du linky avec la mention "injection" ou "consommation" sous la puissance dans la tuile
  14. flacon030

    Fronius

    Je pense que je vais essayer un multilevelsensor Car ce n'est pas une batterie effectivement C'est le pourcentage d’autoconsommation des PV, rien a voir avec une batterie Merci pour ton aide
  15. flacon030

    Fronius

    Quel type de chilld créer pour un % d'autonomie de l'habitation selon vous? Merci
  16. flacon030

    Fronius

    Bon je me répond a moi même Après pas mal d'essais je viens de trouver Il faut ajouter deux lignes pour ce QA et avoir un nouveau child (celui de la puissance qui entre ou sort de la batterie) if self.P_Akku ~= json.null() then self:updateView("akku", "text", "Batterie: - Charge / + Decharge: " .. string.format("%.3f", self.P_Akku) .. " W") self.childs.currentAkkuChild:updateProperty("value", self.P_Akku) -- Ligne ajouté Akku end -- Current Akku power (w) self.childs.currentAkkuChild = self:initChildDevice("currentAkkuChild", "Akku", "com.fibaro.powerMeter", PowerSensor) -- ligne ajouter Akku
  17. Merci aux créateurs de ce forum En effet sans le forum je pense que je n'aurais pas l'installation que j'ai sans l'aide précieuses de ces membres Merci a vous tous Et bonne continuation a @Lazer pour la suite de l'aventure
  18. Bonjour a tous Sur le marketplace il y a un QA pour la gestion des onduleurs fronius Il est plutôt complet mais perso il me manque une information essentiel La gestion de la charge ou décharge de la batterie Cette information est disponible mais le child n'a pas été créer Comment l'ajouter? c'est cette info que je voudrais récupérer pour créer le child if self.P_Akku ~= json.null() then self:updateView("akku", "text", "Batterie: - Charge / + Decharge: " .. string.format("%.3f", self.P_Akku) .. " W") end J'ai bien réussi a ajouter un child avec cela, mais ma valeur reste a zéro -- Current Akku power (w) self.P_Akku.currentGridChild = self:initChildDevice("currentAkkuChild", "Akku", "com.fibaro.powerMeter", PowerSensor) voici le code Ci joint l'API de l'onduleur, et a titre d'information ma batterie est une BYD -- comment the line below to activate trace logs fibaro.trace = function() end function QuickApp:onInit() self:debug('onInit') self.E_Total_Consumed = 0 self.E_Total_Produced = 0 if (not self:checkConfiguration()) then self:updateProperty("log", "Not configured") self:warning("Quick app not configured. Please go to the quick app variables configuration, and set ip of your Fronius device.") else self:updateProperty("log", "") self:trace("initFields") self:initFields() self:trace("createChildDevices") self:createChildDevices() self:trace("fetchGeneralData") self:fetchGeneralData() self:trace("fetchMeterData") self:fetchMeterData() end end function QuickApp:checkConfiguration() if self:getVariable("ip") ~= "" and self:getVariable("port") ~= "" and self:getVariable("timeout") ~= "" then return true end return false end function QuickApp:initFields() self.http = net.HTTPClient({ timeout = 3000 }) self.ip = self:getVariable("ip") self.port = self:getVariable("port") self.timeout = tonumber(self:getVariable("timeout")) self.childs = {} self:updateProperty("configured", true) end -- check if provided device id is a child of this quick app function QuickApp:childDeviceExist(deviceId) if deviceId == nil then return false end local dev = api.get('/devices/' .. tostring(deviceId)) if dev == nil then return false end return dev.parentId == self.id end -- init child devices or create if not exist function QuickApp:initChildDevice(variableName, deviceName, type, class) local childId = self:getVariable(variableName) if(self:childDeviceExist(childId) == false) then local child = self:createChildDevice({ name = deviceName, type = type }, class) childId = child.id self:setVariable(variableName, childId) self:trace(deviceName, "created:", child.id) end return self.childDevices[childId] end function QuickApp:createChildDevices() self:initChildDevices({ ["com.fibaro.electricMeter"] = Meter, ["com.fibaro.energyMeter"] = Meter, ["com.fibaro.powerMeter"] = PowerSensor, }) -- data from: /solar_api/v1/GetMeterRealtimeData.cgi?Scope=System endpoint self.childs.totalEnergyConsumedChild = self:initChildDevice("totalEnergyConsumedChild", "Total energy consumed", "com.fibaro.energyMeter", Meter) self.childs.totalEnergyConsumedChild:updateProperty("rateType", "consumption") -- data from: /solar_api/v1/GetPowerFlowRealtimeData.fcgi endpoint -- total energy produced (kWh) self.childs.totalEnergyChild = self:initChildDevice("totalEnergyChild", "Total energy produced", "com.fibaro.energyMeter", Meter) self.childs.totalEnergyChild:updateProperty("rateType", "production") -- total energy produced in a day (kWh) -- self.childs.totalEnergyDayChild = self:initChildDevice("totalEnergyDayChild", "Day Consumption", "com.fibaro.electricMeter", Meter) -- current production (W) self.childs.currentPowerChild = self:initChildDevice("currentPowerChild", "Production", "com.fibaro.powerMeter", PowerSensor) self.childs.currentPowerChild:updateProperty("rateType", "production") -- current grid power (W) -- from docs: value is null if no meter is enabled ( + from grid , - to grid ) self.childs.currentGridChild = self:initChildDevice("currentGridChild", "Grid", "com.fibaro.powerMeter", PowerSensor) -- self.childs.grid = self:initChildDevice("totalEnergyDayHouseC", "Total energy house day", "com.fibaro.electricMeter", Meter) end function QuickApp:setChildVisibility(childName, visible) local child = self.childs[childName] if child == nil then self:warning(string.format("Child %s not found", childName)) return end local previousVisible = child:getVariable("visible") if previousVisible ~= visible then child:setVisible(visible) child:setVariable("visible", visible) self:debug(string.format("Changing visibility of the child device (id:%d). Visible value: %s", child.id, visible)) end end -- fetch general data function QuickApp:fetchGeneralData() local requestUrl = string.format("http://%s:%s/solar_api/v1/GetPowerFlowRealtimeData.fcgi", self.ip, self.port) self:trace("Sending request:", requestUrl) self.http:request(requestUrl, { options = { method = "GET", headers = { ["Accept"] = "application/json" } }, success = function(response) if (response.status == 200) then self:updateProperty("log", "") self:parseGeneralData(response.data) end -- loop the request fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchGeneralData() end) end, error = function(err) self:error(tostring(err)) self:updateProperty("log", "Connection error") fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchGeneralData() end) end }) end function QuickApp:parseGeneralData(data) local fronius = json.decode(data) self:trace(data) self.E_Total = fronius.Body.Data.Site.E_Total or 0 -- total energy produced self.P_PV = fronius.Body.Data.Site.P_PV or 0 -- current power self.P_Grid = fronius.Body.Data.Site.P_Grid or 0 self.P_Load = fronius.Body.Data.Site.P_Load or 0 self.P_Akku = fronius.Body.Data.Site.P_Akku or 0 self:updateView("mode", "text", "Mode: " .. fronius.Body.Data.Site.Mode) if self.P_Grid ~= json.null() then self:setChildVisibility("currentGridChild", true) self.childs.currentGridChild:updateProperty("log", "") local gridValue = string.format("%.0f", self.P_Grid) self:updateView("grid", "text", "Linky: - Injection / + Conso: " .. gridValue .. " W") self.childs.currentGridChild:setValue(gridValue) if self.P_Grid < 0 then self.childs.currentGridChild:updateProperty("log", "Injection linky") else self.childs.currentGridChild:updateProperty("log", "Conso linky") end else self.childs.currentGridChild:updateProperty("log", "Meter not connected") self:setChildVisibility("currentGridChild", false) -- hiding unused device end if self.P_Load ~= json.null() then self:updateView("load", "text", "Conso maison: " .. string.format("%.3f", self.P_Load) .. " W") end if self.P_Akku ~= json.null() then self:updateView("akku", "text", "Batterie: - Charge / + Decharge: " .. string.format("%.3f", self.P_Akku) .. " W") end if self.P_PV ~= json.null() then self:updateView("current", "text", "Fronius: " .. string.format("%.3f",self.P_PV) .. " W") self.childs.currentPowerChild:updateProperty("value", self.P_PV) end self:updateView("total", "text", "Index Total: " .. string.format("%.3f",self.E_Total / 1000) .. " kWh") self.childs.totalEnergyChild:setValue((self.E_Total) / 1000) self:updateView("day", "text", "Index Journaliere: " .. string.format("%.3f",fronius.Body.Data.Site.E_Day / 1000) .. " kWh") --self.childs.totalEnergyDayChild:setValue(fronius.Body.Data.Site.E_Day / 1000) self:updateView("year", "text", "Index Annuel: " .. string.format("%.3f", fronius.Body.Data.Site.E_Year / 1000) .. " kWh") end -- fetch meter data -> not used for now function QuickApp:fetchMeterData() self.http:request("http://" .. self.ip .. ":" .. self.port .. "/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System", { options = { method = "GET", timeout = 10000, headers = { ["Accept"] = "application/json" } }, success = function(response) if (response.status == 200) then self:parseMeterData(response.data) end fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchMeterData() end) end, error = function(err) self:error(tostring(err)) fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchMeterData() end) end }) end function QuickApp:parseMeterData(data) local fronius = json.decode(data) if fronius == nil or fronius.Body == nil or fronius.Body.Data["0"] == nil then self:trace("Unable to download meter data.") self.childs.totalEnergyConsumedChild:updateProperty("log", "Meter not connected") self:setChildVisibility("totalEnergyConsumedChild", false) -- hiding unused device return end self.childs.totalEnergyConsumedChild:updateProperty("log", "") self:setChildVisibility("totalEnergyConsumedChild", true) self.E_Total_Consumed = fronius.Body.Data["0"].EnergyReal_WAC_Sum_Consumed or 0 -- total energy consumed if self.E_Total_Consumed ~= json.null() then self:updateView("totalConsumption", "text", "Index Conso Linky Annuel: " .. string.format("%.3f",self.E_Total_Consumed / 1000) .. " kWh") self.childs.totalEnergyConsumedChild:setValue((self.E_Total_Consumed) / 1000) end self.E_Total_Produced = fronius.Body.Data["0"].EnergyReal_WAC_Sum_Produced or 0 -- total energy exported (not used for now) end API Fronius.pdf
  19. flacon030

    GH et IFTTT

    et c'est la ou je ne suis plus d'accord un il faut un nombre pas possible d'applet et en plus payant, donc je suis passé par siri ou alexa avec la problématique d'exposer sa box mais c'est vrai a partir du moment ou tu utilise un assistant vocal... Se qui ne me dérange pas personnellement
  20. Désolé pour le doublon J'ai mis en image se que j'ai put voir avec la partie "installateur" de fibaro Je n'avais jamais vu cela Du coup je me suis effectivement poser la question de la version des moteurs Z-wave engine
  21. flacon030

    Z-Wave Engine 3.0 ou 2.0

    Merci c'est bien se qui me semblait
  22. Bonjour a tous Une personne sur le forum m'a contacter pour vérifier le maillage de la box Je suis tombé sur un car curieux ou le réseau maillé ne semble pas fonctionner Sur la première capture tous les modules semble ne pas être maillé (box qui pose probleme) Alors que sur la seconde tous est OK (ma box) Ma question est la suivante, cela peut venir de la version Z-wave engine? Comment savoir sous quel version Z-Wave Engine 3.0 ou 2.0 nous sommes? Si nous sommes en version 3.0 comment faire pour revenir a une version 2.0? Par un recovery en mode usine? Si oui peut t'on récupérer ses modules avec un backup et autres scènes? Ou avez vous une autre idées? Merci
  23. Je confirme sur mon fronius j'ai des panneaux en 360W et des en 380w, et cela ne pose aucun probleme C'est juste que ta chaine se plis a la puissance des panneaux les plus faible, 360W pour mon cas
  24. pour moi tous est OK
  25. flacon030

    GH et IFTTT

    alors oui effectivement avec ifttt et google tu ne créer que les commandes dont tu as besoin
×
×
  • Créer...