Aller au contenu

esolma

Membres confirmés
  • Compteur de contenus

    76
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

esolma a gagné pour la dernière fois le 14 août 2021

esolma a eu le contenu le plus aimé !

Profile Information

  • Sexe :
    Homme
  • Ville :
    Metz
  • Intéret :
    Domotiquer ma maison
  • Box
    Autre
  • Version
    Home Center 3

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

esolma's Achievements

Newbie

Newbie (1/14)

  • Dedicated Rare
  • First Post Rare
  • Collaborator Rare
  • Week One Done
  • One Month Later Rare

Recent Badges

6

Réputation sur la communauté

  1. C'est bon j'ai fini et reussi ! Donc plus d'interrogation toutes les 10s. Juste un call quand la serrure change d'etat. Voilà le QA en type serrure. J'ai vraiment laissé que le basic car je trouve et je pense aussi que le unlatch et autres sont futile et jamais utilisé (en tout cas pour moi) : class 'NukiLockMonitor' (QuickApp) function QuickApp:onInit() self.nukiBridgeIP = "192.168.251.223" -- IP du bridge Nuki self.nukiBridgePort = "8080" -- Port par défaut du bridge self.nukiLockId = "XXXX" -- ID de la smartlock self.token = "XXXX" -- Token Nuki (trouvé dans l'interface du bridge) self.updateDeviceId = 105 -- un bouton à l'etage qui me donne l'etat de la serrure et de ouvrir/fermé via scenario self:checkLockState() end function QuickApp:checkLockState() local url = "http://" .. self.nukiBridgeIP .. ":" .. self.nukiBridgePort .. "/lockState?nukiId=" .. self.nukiLockId .. "&token=" .. self.token local client = net.HTTPClient({timeout = 10000}) client:request(url, { options = { method = 'GET', headers = { Accept = "application/json", }, checkCertificate = false, }, success = function(response) if response.data then local data = json.decode(response.data) if data then local batteryState = data.batteryChargeState or "inconnue" self:updateView("lblAlimentation", "text", "Alimentation : " .. batteryState .. " %") local state = data.state if state == 1 then self:updateProperty("value", true) self:updateProperty("doorLockMode", "secured") self:updateProperty("secured", 255) hub.call(self.updateDeviceId, "turnOff") elseif state == 3 then self:updateProperty("value", false) self:updateProperty("doorLockMode", "unsecured") self:updateProperty("secured", 0) hub.call(self.updateDeviceId, "turnOn") else self:debug("État inconnu ou serrure en transition : " .. tostring(state)) end else self:debug("Erreur lors du décodage JSON") end else self:debug("Erreur: aucune donnée reçue dans la réponse HTTP") end end, error = function(error) self:debug("Erreur lors de la requête HTTP : " .. error) end }) end function QuickApp:secure() self:debug("Ouverture serrure") self:sendLockAction(2) end function QuickApp:unsecure() self:debug("Fermeture serrure") self:sendLockAction(1) end function QuickApp:sendLockAction(action) local url = "http://" .. self.nukiBridgeIP .. ":" .. self.nukiBridgePort .. "/lockAction?nukiId=" .. self.nukiLockId .. "&deviceType=4&action=" .. action .. "&token=" .. self.token -- attention à devicetype pour moi c'est 4 local client = net.HTTPClient({timeout = 3000}) client:request(url, { options = { method = "GET", headers = { ["Content-Type"] = "application/json" }, }, success = function(response) if response.status == 200 then if action == 1 then self:updateProperty("value", true) self:updateProperty("doorLockMode", "secured") self:updateProperty("secured", 255) else self:updateProperty("value", false) self:updateProperty("doorLockMode", "unsecured") self:updateProperty("secured", 0) end else self:error("Erreur HTTP :", response.status, response.data) end end, error = function(err) self:error("Échec de la requête :", err) end }) end Si tu regardes bien quand j'update l’état j'ai mis 3 property à changer : un pour le QA dans l'interface fibaro, un autre pour le texte (secure/unsecure), et un autre parce que l'application ne comprends pas les 2 premiers et inversement..... un vrai casse-tête. Les 2 boutons cadenas sont déjà dans la QA via le type "serrure" et les 2 fonctions secure/unsecure pour ouvrir ou fermé. J'ai juste ajouté un label pour avoir l’état de la batterie : Et mon scenario qui se déclenche via le callback : Declarations : { conditions = {}, operator = "any" } Actions : local NukiQuickAppID = 267 local updateDeviceId = 105 -- toujours mon bouton à l'etage fibaro.call(NukiQuickAppID, "checkLockState") fibaro.sleep(1000) state = fibaro.getValue(NukiQuickAppID, "value") if state == true then fibaro.debug("Serrure", "====> verrouillée") hub.call(updateDeviceId, "turnOff") hub.alert('push', {[1] = 2, }, '🔒 Serrure verrouillée', false, '', false) elseif state == false then fibaro.debug("Serrure", "====> déverrouillée") hub.call(updateDeviceId, "turnOn") hub.alert('push', {[1] = 2, }, '🔓 Serrure déverrouillée', false, '', false) else fibaro.debug("Serrure", "État inconnu : " .. tostring(state)) end J'ai mis un sleep d'une seconde après le check pour laisser le temps au bridge d'avoir le nouvel état sinon il a pas le temps de se mettre à jour et on se retrouve dans l’état juste avant le changement. Si ça va pas il suffit de passer à 2s. Donc là il ne suffit plus que de rajouter une ou deux conditions dans le scenario pour désactiver l'alarme. Un truc genre "si serrure fermé et alarme activé alors désactiver alarme mettre ma variable globale à -4 pour laisser 4 minutes pour que les téléphones se connectent au wifi et que l'alarme ne se réarme pas" Si vous voulez la quickapp qui scrute les téléphones sur le wifi via l'api freebox je peux aussi la fournir si intéresser.
  2. Je sais pas mais chez moi le fait d'interroger le bridge toutes les 10s bouffe la batterie à vue d'oeil : 1 mois max pour la smartlock. Par contre en passant à 30s je tiens facile 3 à 4 mois sans devoir recharger. Je sais que tu interroges LE bridge mais il y a sûrement un check au niveau de la smartlock qui dois se faire sinon j'aurai pas ce comportement. Lazer : -- local url = "http://192.168.251.223:8080/lockState?nukiId=XXXX&token=XXXX" local url = "http://" .. nukiBridgeIP .. ":" .. nukiBridgePort .. "/lockState?nukiId=" .. nukiLockId .. "&token=" .. token l'url commenté est celle qui fonctionne dans un navigateur ou via curl. J'ai essayé les 2 dans le scenario mais ça marche pas. Chatgpt m'a conseillé d'encoder en base64 l'url, de rajouter toute une fonction pour encoder/decoder mais pareil marche pas non plus. Jojo : Pour faire court les callback n'accepte pas le https et ni les comptes/password dans l'url donc http://admin:toto@IP_HC3/api/scenes/187/execute ne fonctionne pas alors que dans ton navigateur ça passe nickel. Tu dois utiliser http://IP_HC3/api/scenes/187/execute mais dans ce cas c'est la HC3 qui ne veut pas car il manque les credentials. Comme j'ai un serveur plex à la maison avec toute une stack sonarr/raddar/delugevpn/blablabla j'ai un proxy "nginx proxy manager". Alors je l'ai utilisé pour faire une redirection simple (si on peut le dire) : Mon callback sur le bridge devient : http://bridge.mon-nom-de-domaine Pour l'ajouter dans le bridge il faut mettre des % partout. Donc ça devient : http%3A%2F%2Fbridge.mon-nom-de-domaine (j'ai utilisé https://www.url-encode-decode.com pour le faire) L'url complète pour ajouter le callback est donc : http://192.168.251.223:8080/callback/add?token=XXXX&url=http%3A%2F%2Fbridge.mon-nom-de-domaine à coller dans un navigateur Puis dans nginx j'ai créé un nouveau host avec mon url et rajouté ces quelques lignes dans ses paramètres : location / { proxy_set_header Authorization "Basic YWRtTySGF5ZXXuNjYPP5JQk"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass_request_body on; proxy_pass_request_headers on; proxy_pass http://192.168.1.200/api/scenes/187/execute; proxy_redirect off; proxy_buffering off; proxy_connect_timeout 5s; proxy_send_timeout 10s; proxy_read_timeout 10s; } L’autorisation Basic XXXX est générée en base64 avec ton admin:password que tu aurais voulu intégrer dans l'url... c'est chatgpt qui me l'a généré. Et voilou : à chaque fois que mon bridge callback j'ai la scène 187 qui s’exécute. Par contre je ne sais pas si c'est ouvert ou fermé. C'est pour ça que je voudrais faire un lockstate pour avoir l’état. Mais comme je l'ai dis : l'url que j'ai copié mot pour mot dans le scenario fonctionne dans une quickapp. Alors je réfléchi.... Mon cerveau fume un peu en ce moment mais je vais trouver la solution. Une solution simple parce que 36 QA ou scenarios ça devient ingérable et c'est pas ce que je veux.
  3. En fait, plus je reflechie et plus je me dis : pourquoi ne pas reprendre ton QA et au lieu de faire un refresh toutes les 10s, faire un refresh avec les callback du bridge. Et l'appel du QA se ferait avec un parametre lock, unlock ou state et là j'aurais ce que je veux. En meme temps ca economiserait de la batterie. Et un tas !
  4. Oui j'avais vu ta quickapp je l'ai meme mis chez moi. Un peu modifier pour moi mais je l'ai !! Le truc c'est que j'ai pas envie de faire 12 QA 12 scenarios qui appels chacun l'un et à la fin il te faut un diagramme à la con pour ne serait-ce retrouver tes billes quand ca ne marche plus..... A l'epoque j'avais fait je ne sais plus combien de scenarios pour les vacances : un pour les volets le matin, un autre le soir, un pour les lumieres, le chauffage etc... Et quand j'allais dans scenario plus de la moitié etaient desactivé et à chaque fois je me disais "mais pourquoi ils son desactivés ? à quoi ils servent ? je les efface ou pas ?". Aujourd'hui j'en ai plus qu'un pour le mode vacanaces et je m'en porte beaucoup mieux. Et pareil pour mes autres scenarios que j'ai fusionné. Donc c'est vrai que je me complique la vie au depart mais c'est pour plus tard quand je devrais à nouveau mettre les mains dedans.
  5. Bonjour, Je rouvre un peu le sujet parce que moi aussi j'ai du mal avec les appels url via les scenarios. J'essaie d'avoir le statut de la serrure mais je n'y arrive j'ai une erreur "400 Bad request" et chatgpt et autres ne m'aide vraiment pas sur ce point. Ca marche très bien via une QA mais dans un scenario ca coince. Mais j'ai pas envie de faire une QA juste pour 3 lignes... C'est pour ca que je voudrais l'integrer à un scenario. Pour expliquer simplement (parce que rien n'est simple avec la domotique) : J'ai fait un QA qui check toutes les minutes via l'api freebox si les telephones familliaux sont connecté. Si tous sont manquant depuis 10 min, l'alarme est activé et on recoit un message push (je pense que je vais rajouter si la serrure est fermé). J'ai dificilement reussi à rajouter un callback sur la nuki bridge pour executer un scenario. C'est censé etre facile mais les callback ne supporte pas les mot de passe dans l'url... Donc j'ai fait une redirection via un nginx sur mon serveur... Donc maintenant je sais quand le serrure change d'etat mais je ne sais pas si elle est ouverte ou fermé. D'où ce scenario. Ainsi selon que ca s'ouvre je pourrais desactiver l'alarme automatiquement. Si besoin et si ca vous interresse, je peux faire un tuto de ce que j'ai fait pour ceux que ca interresse. Merci pour votre aide ! J'ai ceci : local nukiBridgeIP = "192.168.251.223" local nukiBridgePort = "8080" local nukiLockId = "XXXX" local token = "XXXX" -- local url = "http://192.168.251.223:8080/lockState?nukiId=XXXX&token=XXXX" local url = "http://" .. nukiBridgeIP .. ":" .. nukiBridgePort .. "/lockState?nukiId=" .. nukiLockId .. "&token=" .. token net.HTTPClient():request(url, { options={ method = 'GET', headers = { ["Content-Type"] = "application/json" }, timeout = 5000 }, success = function(response) fibaro.debug("NUKI TEST", "Status: " .. response.status) fibaro.debug("NUKI TEST", "Data: " .. json.encode(response.data)) end, error = function(errorMessage) fibaro.debug("NUKI TEST", "Erreur: " .. errorMessage) end })
  6. esolma

    Fibaro Intercom

    Salut, Quelqu'un sait comment utiliser les codes avec ce foutu anneau ? D'après ce que j'ai compris il faut tourner l'anneau sur le premier chiffre puis le valider en poussant l'anneau, et continuer avec le deuxieme troisième. Au quatrième faut encore poussé l'anneau puis apuyer sur la cloche pour valider relais 1 ou 2 fois pour relais 2. J'ai déjà un scenario qui déclenche un carillon aotec quand on appuie sur le bouton (d'ailleurs tous les 3 mois je dois supprimer puis rajouter l'intercom car les scenarios ne s'executent plus.... mais c'est une autre histoire). Donc je me suis fait un 2ème scenario : Mais je vois pas mon erreur ou je my prend mal... Merci
  7. esolma

    QuickApps - Nuki

    En wifi c'est nul. La batterie tient à peine 1 mois et encore.... Je me suis plainds au service client et ils m'ont offert un bridge et depuis ca tient bien les 3 mois tranquille. Est-ce t'as bien rentré ton token ici :
  8. Super merci pour toutes ces infos t'es un chef !
  9. je viens de regarder c'est bien le differentiel. C'en est un de 30mA et dessus un gros autocollant jaune "Coupure sortie onduleur". Je vais voir avec eux pour le faire changer. Mais si je le passe à 100 ou 300, il n'y a pas de risque pour l'onduleur ? Ca ne risque pas de casser un truc ?
  10. oui excuse moi c'est un disjoncteurs. Et la société c'est France Solar ils sont là depuis 15 ans. J'ai preferé passé par eux plutot que par une des autres qui n'existaient que depuis 1 an ou 2 et qui mettent la clé sous la porte rapidement pour ouvrir une autre societé et blablaba arnaquer une max de gens et recommencer.... D'où mon choix. Après j'ai une installe de presque 9kw et ils m'ont installé un onduleur de 8. Je leurs ai dit et ils m'ont répondu que c'etait normale car on ne produit jamais les 9 et que l'onduleur était capable de fournir 8 mais d'encaisser plus. Je trouve ca bizarre mais comme c'est garantie 10 ans je me dis que je les appelerai un tas de fois D'ailleurs je leurs ai meme dit qu'au prix que j'avais payé la différence entre un onduleur de 8 et un de 10 était de seulement 200€ et que ca faisait vraiment radin de leurs part. En fait ils ont mis un tableau electrique suplementaire pour les panneaux solaire et à l'interieur il y a le disjoncteur (peut-etre le differentiel je m'y connais pas) qui à sauté plusieurs fois. Donc d'après toi ce n'est pas censé arrivé ?
  11. Ca y est j'ai trouvé. Au lieu de créer un nouveau scenario, j'ai modifié la quickapp en rajoutant la ligne hub.alert sur les differents status :
  12. Salut, Après plusieurs mois d'utilisation, j'ai remarqué que dans le tableau electrique des panneaux solaire, le fusible principal sautait. Aucune alarme rien. Si je ne regarde pas regulierement je m'en rendrait meme pas compte. La societé qui m'a installé les panneaux m'a dit que c'etait normal et que ca pouvait arrivé de temps en temps. Donc on 9 mois c'est arrivé 3 ou 4x. Dans la quickapp on voit bien un message un message tout en bas "Inverter Status: Fault Mode" ou "Normal mode" : Est-ce qu'il y a une possibilité de mettre une alarme là-dessus et etre prevenu via une notif sur le téléphone ? J'ai essayé avec les scenario de rajouter une scène (d'abord en mode glisser/deposer) et de chercher si un élément était disponible dans les objets, mais rien de percutant. Donc je me dis qu'il faut que je passe par du LUA. par contre je ne sais pas comment recuperé la variable pour pouvoir travailler dessus dans ce nouveau scenario. Quelqu'un aurait-il une idée ? une petite aide svp... Merci
  13. Salut, Il passera un jour en "stable" ce firmware ?? J'ai l'impression que ca fait 6 mois qu'il est en beta. Ils ont été bien plus réactif dans le passé Fibaro...
  14. esolma

    Perte modules

    OK merci je vais voir avec le support
  15. esolma

    Perte modules

    Bonjour, Petite question : ca vous arrive aussi de perdre des modules ? C'est à dire qu'ils se reinitialise tout seul et ne sont plus connecté à la boxe.Ca m'arrive régulierement... on va dire un module par mois. J'ai une douzaine de Walli Switch et une dizaine de Walli Roller Shutter. A moins de 3m de la boxe il y a 10 walli et les autres sont au maximum à 3m du précédent. La perte de module se fait aleatoirement : ca peut etre celui qui est le plus proche de la boxe comme celui le plus eloigné ou au milieu. Et je ne peux rien faire que de l'inclure à nouveau. Mais bon ca devient lassant de passer son temps à réinclure, refaire les scènes etc. Vous avez une idée ? Merci
×
×
  • Créer...