-
Compteur de contenus
1 366 -
Inscription
-
Dernière visite
-
Jours gagnés
34
Tout ce qui a été posté par flacon030
-
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
-
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
-
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}})
- 12 434 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour Je viens aussi de m’apercevoir que deux nouveaux onglets sont apparue "onLongPressDown" et onLongPressReleased" Cela correspond a quoi?
-
Bonjour Ce post date un peut J'ai un problème avec le QA de pilotage de la TV sony https://marketplace.fibaro.com/items/sony-bravia-remote-control Ce dernier fonctionne, mais si,l'on veut faire une scenarios en mode bloc quant on sélectionne le QA et que l'on choisi "appuyer sur le bouton" puis "choisir" les champs sont vide se qui n’était pas le cas dans les versions précédente de la HC3
-
Petite mise a jour avec l'ajout du facteur de puissance QA disponible sur la première page
-
Grafana (Data outside time range)
flacon030 a répondu à un(e) sujet de jojo dans Matériels Informatique
Je viens de trouver la solution pour le problème des graph mensuel il faut remplacer les 30d par 1mo (mois) -
Bon je progresse encore un peu sous grafana a présent se sont les précipitation que je viens de récupérer Par heure / par jour / par mois Et je viens de résoudre le problème des graph mensuel il faut remplacer 30d par 1mo (pour mois)
-
Ha oui c'est beau coups mieux Merci
-
Personne ne peut donner une piste pour s'avoir comment associer un bouton d'un Quick app a une télécommande virtuel de ce même Quick app? Je voudrais associer un bouton de ce type a cela En partant de "paramètres" "ajouter un appareil" "autre appareil" "quick app" télécommande" Le but étant de créer une télécommande virtuel pour lancer des "scénarios" Mais si vous avez d'autres solution je suis preneur Merci
-
Bon ce n'ai pas propre comme code je ne sais pas simplifier les chose mais voici Un QA pour la gestion d'un player multimedia R_Volution https://rvolution.store/fr/160-lecteurs-multimedias Perso j'ai pris ce modèle https://rvolution.store/fr/lecteurs-multimedias/6272-rvolution-player-one-8k.html C'est un player multimédia qui tourne sous android, se qui permet d'installer d'autres applications Pour ma par j'y est ajouté une App IPTV, un smarttube (un youtube sans publicité), plex, ect.. L'avantage de ce player c'est qu'il lit tous formats vidéo et audio, le tous en très haute qualité (Les formats DTSX, dolby atmos, dolby vision, HDR, HDR10, HDR10+ sont tous fonctionnel) Je rippe mes DVD 4K avec make MKV et les place sur mon NAS Qnap 855x, et cela me permet de lire mes médias sans compression en qualité optimum a la façon d'un netflix, mais avec mes propres sources en 4K natif Cet équipement sera une des pièces principal de ma futur salle de cinéma, qui sera bien évidement piloté par la HC3 pour tous les scenarios d'ambiance lumineuse et qui permettra de remplacer toutes les télécommande par l’intermédiaire de scenarios J'ai mis les principales commandes de la télécommande Ci joint les doc pour les API pour ceux qui voudraient faire plus R_Volution.fqa IP Control for R_volution Amlogic based media players.pdf
-
Bonjour Comment attribuer un bouton a un QA télécommande -- Remote controller type have no actions to handle -- Method for emitting central scene events. Default value for keyAttribute is "Pressed" -- Sample usage: self:emitCentralSceneEvent(1, "Pressed") function QuickApp:emitCentralSceneEvent(keyId, keyAttribute) if keyAttribute == nil then keyAttribute = "Pressed" end local eventData = { type = "centralSceneEvent", source = self.id, data = { keyAttribute = keyAttribute, keyId = keyId } } api.post("/plugins/publishEvent", eventData) end -- To update controls you can use method self:updateView(<component ID>, <component property>, <desired value>). Eg: -- self:updateView("slider", "value", "55") -- self:updateView("button1", "text", "MUTE") -- self:updateView("label", "text", "TURNED ON") -- This is QuickApp inital method. It is called right after your QuickApp starts (after each save or on gateway startup). -- Here you can set some default values, setup http connection or get QuickApp variables. -- To learn more, please visit: -- * https://manuals.fibaro.com/home-center-3/ -- * https://manuals.fibaro.com/home-center-3-quick-apps/ function QuickApp:onInit() self:debug("onInit") -- Setup supported keys and attributes of the device -- Scenes will display possible triggers according to these values self:updateProperty("centralSceneSupport", { { keyAttributes = { "Pressed","Released","HeldDown","Pressed2","Pressed3" }, keyId = 1 }, { keyAttributes = { "Pressed","Released","HeldDown","Pressed2","Pressed3" }, keyId = 2 }, { keyAttributes = { "Pressed","Released","HeldDown","Pressed2","Pressed3" }, keyId = 3 }, { keyAttributes = { "Pressed","Released","HeldDown","Pressed2","Pressed3" }, keyId = 4 }, { keyAttributes = { "Pressed","Released","HeldDown","Pressed2","Pressed3" }, keyId = 5 }, }) end ??? function QuickApp:onClickButton() self:Btn("") end
-
Merci pour ce liens J'ai déjà un QA télécommande pour ma TV bravia (voir code ci dessous) il semble que le code soit presque similaire... Pour chaque bouton, seul la fin du liens change (exemple ci dessous) http://192.168.1.111/cgi-bin/do?cmd=ir_code&ir_code=AC534040 code=AC534040 est'il possible d'avoir une liste comme ci dessous ? ---IRCC code for the bouton Self. playPause = 'AC534040' ect... De créer chaque bouton comme ci dessous -- Configuration of the buttons --playPause function QuickApp:uibutton1_1(event) self.args = self.playPause self:remoteCode() end Mais que faut'il modifier dans ce code pour que la requête HTTP puisse fonctionner avec chaque bouton? Merci local http = net.HTTPClient() http:request("http://192.168.1.111/cgi-bin/do?cmd=ir_code&ir_code=AC534040", { success = function(response) if response.status == 200 then print('OK, réponse : '.. response.data) else print("Erreur : status=" .. tostring(response.status)) end end, error = function(err) print("Erreur : " .. err) end, options = { method = 'GET' } }) Voici le QA de ma télécommande pour TV bravia unction QuickApp:onInit() self.args = "SMURF" --variable to send to TV, will be updated when a button is pressed --IRCC codes for the buttons self.source = 'AAAAAQAAAAEAAAAlAw==' self.powerOn = 'AAAAAQAAAAEAAAAuAw==' self.powerOff = 'AAAAAQAAAAEAAAAvAw==' self.powerbutton = 'AAAAAQAAAAEAAAAVAw==' self.diAna = 'AAAAAgAAAHcAAAANAw==' self.tvRad = 'AAAAAgAAABoAAABXAw==' self.sync = 'AAAAAgAAABoAAABYAw==' self.exit = 'AAAAAQAAAAEAAABjAw==' self.num1 = 'AAAAAQAAAAEAAAAAAw==' self.num2 = 'AAAAAQAAAAEAAAABAw==' self.num3 = 'AAAAAQAAAAEAAAADAw==' self.num4 = 'AAAAAQAAAAEAAAADAw==' self.num5 = 'AAAAAQAAAAEAAAAEAw==' self.num6 = 'AAAAAQAAAAEAAAAFAw==' self.num7 = 'AAAAAQAAAAEAAAAGAw==' self.num8 = 'AAAAAQAAAAEAAAAHAw==' self.num9 = 'AAAAAQAAAAEAAAAIAw==' self.info = 'AAAAAQAAAAEAAAA6Aw==' self.zero = 'AAAAAQAAAAEAAAAJAw==' self.teletext = 'AAAAAQAAAAEAAAA/Aw==' self.googlePlay = 'AAAAAgAAAMQAAABGAw==' self.red = 'AAAAAgAAAJcAAAAlAw==' self.green = 'AAAAAgAAAJcAAAAmAw==' self.yellow = 'AAAAAgAAAJcAAAAnAw==' self.blue = 'AAAAAgAAAJcAAAAkAw==' self.tv = 'AAAAAQAAAAEAAAAkAw==' self.actionMenu = 'AAAAAgAAAJcAAAA2Aw==' self.epg = 'AAAAAQAAAAEAAAAOAw==' self.arrowUp = 'AAAAAQAAAAEAAAB0Aw==' self.arrowLeft = 'AAAAAQAAAAEAAAA0Aw==' self.enter = 'AAAAAQAAAAEAAABlAw==' self.arrowRight = 'AAAAAQAAAAEAAAAzAw==' self.arrowDown = 'AAAAAQAAAAEAAAB1Aw==' self.back = 'AAAAAgAAAJcAAAAjAw==' self.discover = 'AAAAAgAAABoAAABzAw==' self.home = 'AAAAAQAAAAEAAABgAw==' self.cycle = 'AAAAAQAAAAEAAAA7Aw==' self.chUp = 'AAAAAQAAAAEAAAAQAw==' self.mute = 'AAAAAQAAAAEAAAAUAw==' self.audio = 'AAAAAQAAAAEAAAAXAw==' self.rewind = 'AAAAAgAAAJcAAAAbAw==' self.play = 'AAAAAgAAAJcAAAAaAw==' self.fastforward = 'AAAAAgAAAJcAAAAcAw==' self.subtitle = 'AAAAAgAAAJcAAAAoAw==' self.skipBack = 'AAAAAgAAAJcAAAA8Aw==' self.pause = 'AAAAAgAAAJcAAAAZAw==' self.skipForward = 'AAAAAgAAAJcAAAA9Aw==' self.help = 'AAAAAgAAABoAAAB7Aw==' self.rec = 'AAAAAgAAAJcAAAAgAw==' self.stop = 'AAAAAgAAAJcAAAAYAw==' self.title = 'AAAAAgAAABoAAABlAw==' self.chDown = 'AAAAAQAAAAEAAAARAw==' self.netflix = 'AAAAAgAAABoAAAB8Aw==' self.volumeUp = 'AAAAAQAAAAEAAAASAw==' self.volumeDown = 'AAAAAQAAAAEAAAATAw==' self.pictureOff = 'AAAAAQAAAAEAAAA+Aw==' self.hdmi1 = 'AAAAAgAAABoAAABaAw==' self.hdmi2 = 'AAAAAgAAABoAAABbAw==' self.hdmi3 = 'AAAAAgAAABoAAABcAw==' self.hdmi4 = 'AAAAAgAAABoAAABdAw==' end -- function for sending the IRCC codes to the TV function QuickApp:remoteCode(args) self:debug ("function IRCC called") local sonyip = self:getVariable("ip"); local sonypsk = self:getVariable("psk"); function putMethod(requestUrl, data, successCallback, errorCallback) local http = net.HTTPClient() http:request(requestUrl, { options = { method = 'POST', headers = { ["Content-Type"] = "text/xml"; ["soapaction"] = '"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"'; ["x-auth-psk"] = '' .. sonypsk .. ''; }, data = data }, success = successCallback, error = errorCallback }) return args end local url = 'http://' .. sonyip .. '/sony/IRCC' local data = [[ <?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"> <IRCCCode>]] .. self.args .. [[</IRCCCode> </u:X_SendIRCC> </s:Body> </s:Envelope> ]] putMethod( url, data, function(resp) print('Status: ' .. resp.status) end, function(err) print('error' .. err) end ) end -- Configuration of the buttons --Source function QuickApp:uibutton1_1(event) self.args = self.source self:remoteCode() end --mic function QuickApp:uibutton1_2(event) self.debug ("no key (microphone)") --self:remoteCode() end --PowerCycle function QuickApp:uibutton1_3(event) self:debug ("power button pressed") self:debug (self.powerbutton) self.args = self.powerbutton self:remoteCode() end -- Digital/Analog function QuickApp:uibutton2_1(event) self.args = self.diAna self:remoteCode() end -- TV/Radio function QuickApp:uibutton2_2(event) self.args = self.tvRadio self:remoteCode() end -- Sync Menu function QuickApp:uibutton2_3(event) self.args = self.sync self:remoteCode() end -- exit function QuickApp:uibutton2_4(event) self.args = self.exit self:remoteCode() end -- Num 1 function QuickApp:uibutton3_1(event) self.args = self.num1 self:remoteCode() end -- Num 2 function QuickApp:uibutton3_2(event) self.args = self.num2 self:remoteCode() end -- Num 3 function QuickApp:uibutton3_3(event) self.args = self.num3 self:remoteCode() end -- Num 4 function QuickApp:uibutton4_1(event) self.args = self.num4 self:remoteCode() end -- Num 5 function QuickApp:uibutton4_2(event) self.args = self.num5 self:remoteCode() end -- Num 6 function QuickApp:uibutton4_3(event) self.args = self.num6 self:remoteCode() end -- Num 7 function QuickApp:uibutton5_1(event) self.args = self.num7 self:remoteCode() end -- Num 8 function QuickApp:uibutton5_2(event) self.args = self.num8 self:remoteCode() end -- Num 9 function QuickApp:uibutton5_3(event) self.args = self.num9 self:remoteCode() end -- info function QuickApp:uibutton6_1(event) self.args = self.info self:remoteCode() end -- Num 0 function QuickApp:uibutton6_2(event) self.args = self.num0 self:remoteCode() end -- Subtitle function QuickApp:uibutton6_3(event) self.args = self.subtitle self:remoteCode() end --Google Play function QuickApp:uibutton7_1(event) self.args = self.googlePlay self:remoteCode() end --Netflix function QuickApp:uibutton7_2(event) self.args = self.netflix self:remoteCode() end -- Red function QuickApp:uibutton8_1(event) self.args = self.red self:remoteCode() end -- Green function QuickApp:uibutton8_2(event) self.args = self.green self:remoteCode() end -- Yellow function QuickApp:uibutton8_3(event) self.args = self.yellow self:remoteCode() end -- Blue function QuickApp:uibutton8_4(event) self.args = self.blue self:remoteCode() end -- TV function QuickApp:uibutton9_1(event) self.args = self.tv self:remoteCode() end -- Action Menu function QuickApp:uibutton9_2(event) self.args = self.action self:remoteCode() end -- EPG function QuickApp:uibutton9_3(event) self.args = self.epg self:remoteCode() end -- Arrow up function QuickApp:uibutton10_1(event) self.args = self.arrowUp self:remoteCode() end -- Arrow Left function QuickApp:uibutton10_2(event) self.args = self.arrowLeft self:remoteCode() end -- OK/Enter button function QuickApp:uibutton10_3(event) self.args = self.enter self:remoteCode() end -- Arrow Right function QuickApp:uibutton10_4(event) self.args = self.arrowRight self:remoteCode() end -- Arrow Down function QuickApp:uibutton10_5(event) self.args = self.arrowDown self:remoteCode() end -- Back function QuickApp:uibutton11_1(event) self.args = self.back self:remoteCode() end -- Disover function QuickApp:uibutton11_2(event) self.args = self.diwscover self:remoteCode() end -- Home function QuickApp:uibutton11_3(event) self.args = self.home self:remoteCode() end -- Volume up function QuickApp:uibutton12_1(event) self.args = self.volumeUp self:remoteCode() end -- Cycle channel function QuickApp:uibutton12_2(event) self.args = self.diAna self:remoteCode() end -- Channel Up function QuickApp:uibutton12_3(event) self.args = self.channelUp self:remoteCode() end --volume down function QuickApp:uibutton13_1(event) self.args = self.volumeDown self:remoteCode() end -- Mute function QuickApp:uibutton13_2(event) self.args = self.mute self:remoteCode() end -- Channel Down function QuickApp:uibutton13_3(event) self.args = self.channelDown self:remoteCode() end -- Audio function QuickApp:uibutton14_1(event) self.args = self.audio self:remoteCode() end -- Rewind function QuickApp:uibutton14_2(event) self.args = self.rewind self:remoteCode() end -- Play function QuickApp:uibutton14_3(event) self.args = self.play self:remoteCode() end -- Fast forward function QuickApp:uibutton14_4(event) self.args = self.fastForward self:remoteCode() end -- Subtitle function QuickApp:uibutton15_1(event) self.args = self.subtitle self:remoteCode() end -- Skip Back function QuickApp:uibutton15_2(event) self.args = self.skipBack self:remoteCode() end -- Pause function QuickApp:uibutton15_3(event) self.args = self.pause self:remoteCode() end -- Skip forward function QuickApp:uibutton15_4(event) self.args = self.skipForward self:remoteCode() end -- Help function QuickApp:uibutton16_1(event) self.args = self.help self:remoteCode() end -- Record function QuickApp:uibutton16_2(event) self.args = self.record self:remoteCode() end -- Stop function QuickApp:uibutton16_3(event) self.args = self.stop self:remoteCode() end -- Title list function QuickApp:uibutton16_4(event) self.args = self.title self:remoteCode() end -- HDMI1 function QuickApp:uibutton17_1(event) self.args = self.hdmi1 self:remoteCode() end -- HDMI2 function QuickApp:uibutton17_2(event) self.args = self.hdmi2 self:remoteCode() end -- HDMI3 function QuickApp:uibutton17_3(event) self.args = self.hdmi3 self:remoteCode() end -- HDMI4 function QuickApp:uibutton17_4(event) self.args = self.hdmi4 self:remoteCode() end -- Power On function QuickApp:uibutton18_1(event) self.args = self.powerOn self:remoteCode() end -- Power Off function QuickApp:uibutton18_2(event) self.args = self.powerOff self:remoteCode() end
- 61 réponses
-
Je suis en cour de réalisation d'une télécommande pour un équipement de mon home cinéma J'ai tous une liste de requête http pour chaque fonction de la télécommande J'ai testé cela dans un QA et cela fonctionne local http = net.HTTPClient() http:request("http://192.168.1.111/cgi-bin/do?cmd=ir_code&ir_code=AC534040", { success = function(response) if response.status == 200 then print('OK, réponse : '.. response.data) else print("Erreur : status=" .. tostring(response.status)) end end, error = function(err) print("Erreur : " .. err) end, options = { method = 'GET' } }) A présent comment associer cette commande a un bouton virtuel? Merci Voici la liste des commandes en pièce jointe IP Control for R_volution Amlogic based media players.pdf
- 61 réponses
-
Merci pour le liens, je continue le sujet sur le liens
-
Bonjour Je voudrais faire un télécommande virtuel d'un de mes équipement home cinéma Comment envoyer une requette HTTP depuis un bouton virtuel d'un QA? Par exemple ceci est la commande que je dois envoyer pour un play / Pause http://192.168.1.111/cgi-bin/do?cmd=ir_code&ir_code=AC534040
-
mise a jour fait depuis deux jours, RAS pour le moment
-
Effectivement cela semble être une bonne solution Il y a "juste" le fait d’écrire un QA qui bloque pour ma par
-
Il semble que les serveur netatmo sont encore en vrac Cela me réconforte dans le fait de trouver des solutions alternative Il n'y a que le pluviomètre qui pour le moment me pose problème pour une solution de remplacement Mai je pense que je vais passer avec cette solution https://fr.aliexpress.com/item/1005006160477600.html?spm=a2g0o.productlist.main.11.3b3b228eRwpjOk&algo_pvid=e436fb94-1480-488f-bebc-8070476931dc&algo_exp_id=e436fb94-1480-488f-bebc-8070476931dc-10&pdp_ext_f={"order"%3A"7"%2C"eval"%3A"1"%2C"fromPage"%3A"search"}&pdp_npi=6%40dis!EUR!123.98!61.99!!!1008.79!504.40!%402103985c17589553289764800ead06!12000036047244327!sea!FR!0!ABX!1!0!n_tag%3A-29910%3Bd%3Ac85a3bc%3Bm03_new_user%3A-29895&curPageLogUid=dkUY9Gx0Jo5B&utparam-url=scene%3Asearch|query_from%3A|x_object_id%3A1005006160477600|_p_origin_prod%3A en 0/10V et un RGBW de chez fibaro Si non il y a aussi une version avec pulsation mais je ne sais pas comment le gérer, peut être avec un le compteur a impulsion de l'ecodevice
-
mise a jour effectué pas de problémes c'est tous de même plus lisible dans l'ensemble
-
Bonjour a tous voici la version ultime pour ma par Elle n'est pas parfaite mais fonctionnel Voici les données que je cherchais a avoir pour infludb et grafana J'ai ajouté par rapport a la dernière version les éléments suivants: La tension batterie La T° de la batterie Le courant de charge / décharge de la batterie Les tensions 230V de l'onduleur Les courants de l'onduleur Le cos Phi de l'onduleur Les tensions des PV1 et 2 Les courants des PV1 et 2 Se que je n'ai pas implémenté se sont: les tension en triphasé (430V) Les puissance en réactif en mono et triphasé Les puissances par phase en W et en Va Plus quelque autres éléments Fronius(1).fqa
-
C'est bon cela fonctionne J'avais fait une petite erreur j'avais mis courant d'un coté, et voltage de l'autre (voir capture) Merci encore pour ton aide
-
voici les données [03.09.2025] [09:13:35] [DEBUG] [QUICKAPP598]: onInit [03.09.2025] [09:13:36] [DEBUG] [QUICKAPP598]: { "Body" : { "Data" : { "0" : { "Controller" : { "Capacity_Maximum" : 16588.0, "Current_DC" : 5.3786226238703652, "DesignedCapacity" : 16588.0, "Details" : { "Manufacturer" : "BYD", "Model" : "BYD Battery-Box Premium HV", "Serial" : "P030T020Z2306091139 " }, "Enable" : 1, "StateOfCharge_Relative" : 35.399999999999999, "Status_BatteryCell" : 3.0, "Temperature_Cell" : 26.0, "TimeStamp" : 1756883610, "Voltage_DC" : 320.89999999999998 }, "Modules" : [] } } }, "Head" : { "RequestArguments" : { "Scope" : "System" }, "Status" : { "Code" : 0, "Reason" : "", "UserMessage" : "" }, "Timestamp" : "2025-09-03T07:13:35+00:00" } }
-
Il n'y a plus d'erreur mais la valeur ne remonte pas Voici mon code -- 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() self:trace("fetchInverterData") self:fetchInverterData() self:trace("fetchStorageData") self:fetchStorageData() 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 -- fetch Storage data --------------------------------------------------------------------------------------------------------------------------------- function QuickApp:fetchStorageData() self.http:request("http://" .. self.ip .. ":" .. self.port .. "/solar_api/v1/GetMeterRealtimeData.cgi", { options = { method = "GET", timeout = 10000, headers = { ["Accept"] = "application/json" } }, success = function(response) if (response.status == 200) then self:parseStorageData(response.data) end fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchStorageData() end) end, error = function(err) self:error(tostring(err)) fibaro.setTimeout(tonumber(self.timeout) * 1000, function () self:fetchStorageData() end) end }) end function QuickApp:parseStorageData(data) local fronius = json.decode(data) self.Current_DC = type(fronius) == "table" and type(fronius.Body) == "table" and type(fronius.Body.Data) == "table" and type(fronius.Body.Data["0"]) == "table" and type(fronius.Body.Data["0"].Controller) == "table" and fronius.Body.Data["0"].Controller.Current_DC or 0 if type(self.Voltage_DC) == "number" then self:updateView("Voltage_DC", "text", "Tension batterie: " .. string.format("%.3f",self.Voltage_DC) .. " V") end end
-
Cela avance a present j'ai ce message d'erreur [02.09.2025] [17:30:02] [ERROR] [QUICKAPP598]: QuickApp crashed [02.09.2025] [17:30:02] [ERROR] [QUICKAPP598]: main.lua:496: bad argument #2 to 'format' (number expected, got nil) La ligne 496 est la suivante: if self.Voltage_DC ~= json.null() then self:updateView("Voltage_DC", "text", "Tension batterie: " .. string.format("%.3f",self.Voltage_DC) .. " V")
