Aller au contenu

stipower

Membres confirmés
  • Compteur de contenus

    97
  • Inscription

  • Dernière visite

  • Jours gagnés

    3

Tout ce qui a été posté par stipower

  1. Oui du coup, l'avantage de Smartcar, c'est qu'il font le taf de suivi de version pour nous.
  2. Ha oui ca pourrait même être plus intéressant
  3. Bonjour. Voici la version 1.0 Je dois encore régler le nombre de requêtes par par jour. Je me suis fait bloqué par smartcar pendant mes tests. Actuellement c'est réglé à 24h. Merci pour vos retours.
  4. réservé
  5. réservé
  6. réservé
  7. Renault 5 version 1.0 Présentation :  Ce QuickApp permet d'afficher le niveau de batterie et l'autonomie de sa voiture électrique. Le Qapp utilise les API dashboard.smartcar.com qui font le relai entre le Qapp et l'interface Renault. Je n'ai pas testé, mais cela devrait fonctionner avec un grand nombre de marque et de modèles de voitures. (https://smartcar.com/product/compatible-vehicles) Prérequis : Créer un compte Smartcar sur https://webflow.smartcar.com/fr (gratuit -> 500 requètes / mois) la redirect URI peut être : https://127.0.0.1/ récuperer le clientId, le clientSecret et le SmartcarCode pour les mettre en variable Installation du QuickApp : importer le fichier Quickapp Modifications des variables dans les variables du quickapp : clientId -> se trouve dans smartcar / configuration / API Keys clientSecret -> se trouve dans smartcar / configuration / API Keys SmartcarCode -> se trouve dans smartcar / Share Connect link Changelog : v1.00 : septembre 2025 Version initiale Téléchargement : Nouvelle installation : importer le fichier suivant pour créer un nouveau QuickApp : Qapp main.lua Contenu du code : Qapp main.luaQapp tools.lua
  8. Pour ceux que ca interesse, j'ai posté mon Qapp thermostat-calcifer-rika-firenet.
  9. Voila, je me lance dans le partage d'un Quickapp. Soyez indulgent, c'est le premier que je pose ici. Merci pour vos retours / améliorations si vous en avez.
  10. réservé
  11. réservé
  12. réservé
  13. Thermostat Calcifer Rika Firenet version 1.0 Présentation :  Ce QuickApp permet de contrôler la température de consigne d'un poêle Rika avec Firenet. Le mode Domotique OFF permet de passer en lecture seule pour n'avoir que le visuel du Quickapp et garder le contrôle par l'appliweb Firenet. Le Qapp ne supportant pas les requêtes http vers Firenet (retour erroné), j'ai du passer par des scènes. Le Qapp utilise 2 scènes pour envoyer les requêtes http chez firenet : Firenet SetInfo -> est lancée par le quickapp pour pousser les mise à jour chez firenet. Firenet GetInfo -> tourne toutes les 10 secondes pour mettre à jour l'interface du quickapp. Prérequis : Disposer d'un compte firenet avec un poël Rika. Installation du QuickApp : importer le fichier Quickapp créer la scène Firenet SetInfo créer la scène Firenet GetInfo Modifications des variables dans les variables du quickapp : Stove -> numéro du poele user -> nom d'utilisateur firenet password -> mot de passe firenet Modifications des variables dans le code main du quickapp : local IDSC_Firenet_SetInfo = XXX -- ID de la scène Firenet SetInfo Modifications des variables dans le code de la scène Firenet GetInfo : local IDQappCalcifer = XXX -- ID du Quickapp Calcifer Modifications des variables dans le code de la scène Firenet SetInfo : local IDQappCalcifer = XXX -- ID du Quickapp Calcifer Changelog : v1.00 : mai 2025 Version initiale Téléchargement : Nouvelle installation : importer le fichier suivant pour créer un nouveau QuickApp Calcifer_Firenet.fqa créer les 2 scènes en y copiant le code. Firenet GetInfo.lua Firenet SetInfo.lua Mise à jour : copier/coller le contenu des fichiers suivants dans le QuickApp existant et les 2 scènes existantes : Quickapp : Qapp IHM.txtQapp Tools.txtQapp main.txt Scènes : Firenet SetInfo.luaFirenet GetInfo.lua
  14. Bonjour. Tout d'abord, merci à Couillerot pour son code. Pour résoudre le problème des 50 requètes à ne pas dépasser, j'ai modifié la ligne 78 en augmentant le timer de 5 min (1000 ms x 60 sec x 5 min) à 60 min : avant fibaro.setTimeout(1000 * 60 * 5, function() après fibaro.setTimeout(1000 * 60 * 60, function() 1h est largement suffisant pour prévoir la pluie sur mes fraises :).
  15. Si vous voulez, j'ai déjà codé cette partie là. Mon token se réactualise toutes les heures sur ma Qapp.
  16. stipower

    Les Childs pour les Nuls

    Merci pour ton boulot Bloug. Je vais m'y mettre avec ton tuto
  17. Rha la loose. Merci pour ton retour. J'ai ouvert un case au support. Obligé en attendant de faire tourner une scène toutes les 10 secondes en allant chercher de variables globales. Ca me rappelle ma HC2 ...
  18. Hello, Bon, j'ai un truc bizarre. Je n'ai pas le même comportement avec net.HTTPClient() dans une scène ou dans un QApp. Cela marche bien dans une scène. réponse 302 : login ok donc redirection et je récupère le cookie et je fais la suite, blablabla. Sur ma Qapp, si je vire pas le CheckCertificate alors je n'ai plus de réponse. Il ne se passe rien. Si je vire le CheckCertificate, alors j'ai une réponse erreur 404. La même erreur que quand je mets des faux login/password. Dans la scène, ces même logins/ password sont OK. Y a-t-il un comportement différent attendu entre les Scènes et les App ??? Merci Voici mon code QA qui marche pas (erreur 404) : function QuickApp:onInit() self:debug("onInit") -- récupère le token Easee -- variables locales local Debugging = 01 local EaseeURLlogin = "https://api.easee.com/api/accounts/login" EaseeURLlogin = "https://www.rika-firenet.com/web/login/" --EaseeURLlogin = "https://free.fr" local http = net.HTTPClient() local user = "toto" local password = "titi" local HTTPdata = '{"email": "'.. user .. '", "password": "' .. password .. '"}' if Debugging > 0 then fibaro.debug(DebugTag,"EaseeURLlogin : "..EaseeURLlogin) fibaro.debug(DebugTag,"HTTPdata : "..HTTPdata) end http:request(EaseeURLlogin, { options = { --checkCertificate = false, method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = HTTPdata, timeout = 10000 }, success = function(response) fibaro.debug(DebugTag,'ici') fibaro.debug(DebugTag,response.status) end, error = function(err) local msg = "Erreur : " .. err fibaro.warning(DebugTag,msg) end, } ) end debug Qapp: [24.01.2025] [13:41:18] [DEBUG] [QUICKAPP345]: onInit [24.01.2025] [13:41:18] [DEBUG] [TEST]: EaseeURLlogin : https://www.rika-firenet.com/web/login/ [24.01.2025] [13:41:18] [DEBUG] [TEST]: HTTPdata : {"email": "toto", "password": "titi"} [24.01.2025] [13:41:19] [DEBUG] [TEST]: ici [24.01.2025] [13:41:19] [DEBUG] [TEST]: 404 Voici mon code dans la scène (qui marche bien code 302) function APIGetInfo(URLBase, user ,password, Stove, parametre, value) -- variables locales local DebugTag = "SC_RIKA_107_APIGetInfo" local Debugging = 0 local URLLogin = "/web/login" local URLAPI = "/api/client/"..Stove.."/status?nocache=" local Cookie = "vide" local Revision = "vide" -- à virer ?????????? local URL = URLBase..URLLogin local HTTPdata = '{"email": "'.. user .. '", "password": "' .. password .. '"}' if Debugging > 0 then fibaro.debug(DebugTag,"**************** Login ****************") fibaro.debug(DebugTag,"URL = " .. URL) fibaro.debug(DebugTag,"HTTPdata : "..HTTPdata) end http:request(URL, { options = { method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = HTTPdata, timeout = 10000 }, success = function(response) if Debugging > 0 then fibaro.debug(DebugTag,"status : "..response.status) fibaro.debug(DebugTag,"response : " ..json.encode(response)) fibaro.debug(DebugTag,"response.data : " ..json.encode(response.data)) fibaro.debug(DebugTag,"Cookie : "..response.headers["Set-Cookie"]) end if response.status == 302 or response.status == 200 or response.status == 201 then fibaro.trace(DebugTag,"Login Firenet OK.") Cookie = response.headers["Set-Cookie"] --[... suite du code] debug scène : [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107]: **************** Start **************** [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: **************** Login **************** [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: URL = https://www.rika-firenet.com/web/login [24.01.2025] [13:43:09] [DEBUG] [SC_RIKA_107_APIGETINFO]: HTTPdata : {"email": "XXX", "password": "YYY"} [24.01.2025] [13:43:10] [DEBUG] [SC_RIKA_107_APIGETINFO]: status : 302 [24.01.2025] [13:43:10] [DEBUG] [SC_RIKA_107_APIGETINFO]: response : {"data":"","headers":{"Strict-Transport-Security":"max-age=15552000; includeSubDomains","........
  19. Hello, Idée d'amélioration : Ma sonde de temp remonte un chiffre à 10 digit. Ca sert à rien mais c'est comme ca ... J'ai donc modifié ton code pour avoir ceci sur la fonction HM:updateLabelTemp(item) function HM:updateLabelTemp(item) table.insert(self.iwashere, "updateLabelTemp") item.power = item.power or 0 -- not needed local device = iif(self.HMCF.coolingDevice, "❄️ ", "🔥 ") local percent = iif(self.isOff, "Off", string.format("%.0f%%", item.power)) local power = device..percent.." | "..iif(item.state == ON, "⚡", "💤") local tempe = item.temp or "N/A " if type(tempe) == "string" then tempe = math.floor(item.temp * 10) / 10 end if self.outdoor then self:updateLabel("lbTemp", "🌙 "..self.outdoor.."°C | 🌡️ "..tempe.."°C | "..power) else self:updateLabel("lbTemp", "🌡️ "..tempe.."°C | "..power) end table.remove(self.iwashere) end ajout de : if type(tempe) == "string" then tempe = math.floor(item.temp * 10) / 10 end
  20. Bon, j'ai fait quelques tests. Pour l'instant j'ai réussis à me connecter avec une scène sur https://www.rika-firenet.com/web/login. Bon après je suis bloqué, il me faudrait un compte avec un poêle enregistré. Ca intéresse quelqu'un de bosser avec moi sur les sujet ? [05.01.2025] [20:47:28] [DEBUG] [SC_RIKA_107]: **************** Start **************** [05.01.2025] [20:47:28] [DEBUG] [SC_RIKA_107]: URL = https://www.rika-firenet.com/web/login [05.01.2025] [20:47:29] [DEBUG] [SC_RIKA_107]: 302 [05.01.2025] [20:47:29] [TRACE] [SC_RIKA_107]: OK => Location = /web/summary [05.01.2025] [20:47:29] [DEBUG] [SC_RIKA_107]: URL = https://www.rika-firenet.com/web/summary [05.01.2025] [20:47:29] [DEBUG] [SC_RIKA_107]: 404 [05.01.2025] [20:47:29] [DEBUG] [SC_RIKA_107]: {"headers":{"Content-Security-Policy":"default-src 'self' fonts.gstatic.com fonts.googleapis.com bf56065spx.bf.dynatrace.com www.google.com www.gstatic.com www.google-analytics.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com fonts.gstatic.com www.google.com www.gstatic.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' js-cdn.dynatrace.com www.google-analytics.com www.google.com www.gstatic.com; img-src 'self' data: www.google-analytics.com www.google.com www.gstatic.com","X-Frame-Options":"SAMEORIGIN","Nel":"{\"report_to\":\"heroku-nel\",\"max_age\":3600,\"success_fraction\":0.005,\"failure_fraction\":0.05,\"response_headers\":[\"Via\"]}","Report-To":"{\"group\":\"heroku-nel\",\"max_age\":3600,\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?ts=1736106449&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&s=7XgXV6GM1PpyRkEVl6zvOkcuFO9tiXlw4VBQMv%2FAIw4%3D\"}]}","Etag":"W/\"1e-9VJ6Obc5ehkdquBX8z1IxhBx8vk\"","X-Download-Options":"noopen","Vary":"Accept-Encoding","Server":"Cowboy","X-Webkit-Csp":"default-src 'self' fonts.gstatic.com fonts.googleapis.com bf56065spx.bf.dynatrace.com www.google.com www.gstatic.com www.google-analytics.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com fonts.gstatic.com www.google.com www.gstatic.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' js-cdn.dynatrace.com www.google-analytics.com www.google.com www.gstatic.com; img-src 'self' data: www.google-analytics.com www.google.com www.gstatic.com","X-Content-Type-Options":"nosniff","X-Dns-Prefetch-Control":"off","Connection":"keep-alive","Via":"1.1 vegur","Reporting-Endpoints":"heroku-nel=https://nel.heroku.com/reports?ts=1736106449&sid=812dcc77-0bd0-43b1-a5f1-b25750382959&s=7XgXV6GM1PpyRkEVl6zvOkcuFO9tiXlw4VBQMv%2FAIw4%3D","Date":"Sun, 05 Jan 2025 19:47:29 GMT","Strict-Transport-Security":"max-age=15552000; includeSubDomains","Content-Type":"text/html; charset=utf-8","X-Content-Security-Policy":"default-src 'self' fonts.gstatic.com fonts.googleapis.com bf56065spx.bf.dynatrace.com www.google.com www.gstatic.com www.google-analytics.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com fonts.gstatic.com www.google.com www.gstatic.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' js-cdn.dynatrace.com www.google-analytics.com www.google.com www.gstatic.com; img-src 'self' data: www.google-analytics.com www.google.com www.gstatic.com","Set-Cookie":"connect.sid=s%3AMvph0D9Db-B1mNvP8WZuS0mEn26p2C9N.Al7K5ikIDHDD4kr8hqOBcSicivq11IjLn5HhWXmPNg0; Path=/; Expires=Sun, 19 Jan 2025 19:47:29 GMT; HttpOnly","X-Xss-Protection":"1; mode=block","Content-Length":"30"},"data":" Not Found ","status":404}
  21. Je suis aussi intéressé par le sujet. J'ai trouvé un code en PHP pour Domoticz, mais je ne sais pas le traduite en LUA. Je ne sais même pas si cela est possible. https://github.com/iero/Rika-Stove Mais je suis plutôt intéressé par créé un Qapp si je peux piloter par des requêtes HTTP.
  22. Bonjour, Petite question avec la HC3. Le module me renvoie un précision déconcertante avec 3 nombres arpès la virgule. Genre 230.424 V ou 1535.124 W Est-ce pareil chez vous ? Y a-t-il un moyen de revenir à 230V ou 1535 W ? Merci
  23. Bonjour, Toujours pas de mieux coté API ?
  24. Salut TitiXsi, Ton hypothèse sur les requêtes qui s'emplafonnent semble cohérente. J'ai effectivement 2 pinces. Une pour le prod et une sur mon linky.
  25. Ok. Je vais coder ma Qapp de mon coté du coup Merci pour tes réponses .
×
×
  • Créer...