Aller au contenu

OJC

Membres confirmés
  • Compteur de contenus

    130
  • Inscription

  • Dernière visite

Réputation sur la communauté

51 Excellent

À propos de OJC

Profile Information

  • Sexe :
    Homme
  • Ville :
    Bordeaux
  • Box
    Home Center 2
  • Version
    4.142

Visiteurs récents du profil

86 visualisations du profil
  1. mets ça pour voir : token = string.gsub(token, "\\", "\\\\")
  2. VD d'un FGMS-001

    A mon avis, c'est pas faisable ton truc... Tu peux pas faire autrement que de distinguer dans ton script les FMGS-001 et les détecteurs non Z-Wave. Pour les détecteurs FGMS-001, la détection de mouvement entraîne un changement de la propriété value qui passe à 1 et retourne à 0 quand l'alarme de détection de mouvement cesse. Un VD ne pourra pas avoir de propriété value. Au maximum, via un label, tu peux faire une propriété ui.value.value, mais pas plus. Ou, si tu ne veux pas faire de distingo dans ton script (ce qui reste la solution la plus simple), tu doubles tes FGMS-001 d'un VD et dans ton script, tu t'occupes que des VD.
  3. @pepite Non, mais c'est pour que la fonction sache où s'arrêter. Comme on lui demande de ramener tous les caractères après \"token\":\", il faut lui dire où s'arrêter autrement qu'avec \", puisque sinon, elle te ramène tout jusqu'à errors inclus. Mais sinon, il est vrai que local token = response:match('\\\"token\\\":\\\"(.+)\\\",\\\"') marche aussi.
  4. En revanche, là où tu vas peut être avoir un problème, c'est pour renvoyer le token vers la boitier de commande s'il contient un caractère d'échappement comme tout à l'heure... Si tu as un pb à ce niveau-là, tu peux faire un string.gsub(token, "\\", "\\\\") avant de l'utiliser, comme ça tout caractère d'échappement contenu dans le token sera lui-même échappé et le moteur lua le considèrera comme un caractère lambda.
  5. Juste pour expliquer... Le contenu de la variable response est : {"headers":{"Connection":"Keep-Alive","Content-Type":"application\/json","Content-Length":"100"},"status":200,"data":")]}',\n{\"token\":\"2|3Cfg0j0mOfSwsiIQISQA==\",\"result\":true,\"deviceStatus":{},\"errors\",[]"} On se concentre là dessus : \"token\":\"2|3Cfg0j0mOfSwsiIQISQA==\",\"result Le point délicat qui nous a bien baladé, ce sont les caractères d'échappement \ qu'il faut aussi échapper pour que le moteur lua ne les considère pas comme des caractères d'échappement et que tout foire. Tout en échappant également les guillemets. Ce qui donne ça : \\\"token\\\":\\\"2|3Cfg0j0mOfSwsiIQISQA==\\\",\\\"result Et il reste plus qu'à préciser dans la formule qu'on veut récupérer ce qui est vert, qu'on remplace donc par (.+) = + les parenthèses pour que la fonction comprenne que c'est ça qu'il doit retourner + le point pour lui dire qu'on se fout du caractère et qu'il prend tout ce qu'il trouve + le plus pour lui dire qu'il prend tout ce qu'il trouve peu importe le nombre de caractères Et on a la formule à lui donner à manger...
  6. P... on va le mater, ton truc, j'te dis local token = response:match('\\\"token\\\":\\\"(.+)\\\",\\\"result') print("token = " .. tostring(token))
  7. Et essaie en remplaçant print par fibaro:debug
  8. @Cardane Tu peux faire un copie coller du debug (pour faciliter les tests) stp ?
  9. Désactiver un bouton dans un VD

    Ce n'est pas parce que tu n'a pas d'erreur en debug que ça existe... Essaie avec fibaro:get(ID, "ui.slider.bonnesoupe") tu verras
  10. Tada : local key = "token" local token = response:match("\""..key.."\":\"(.+)\",") print(token)
  11. @Steven Le souci, c'est qu'il y a un caractère d'échappement dans son token : i2xU0kot0ZONeg\/tgGcTA== donc ça foire
  12. @Cardane oui, bien possible. Essaie comme ça du coup : success = function(response) print ("Je suis dans response") response.data = string.gsub(response.data, ")]},\n", "") local jsonTable = json.decode(response.data) for i, j in pairs(jsonTable) do fibaro:debug(tostring(i) .. " - " .. tostring(j)) end end,
  13. Oué, regarde deux posts plus haut la formule modifiée tenant compte du fait que tu as des signes = dans son token.
  14. Sinon pour exploiter sous format de variable table, essaie de faire une boucle pour voir ce qui sort : success = function(response) print ("Je suis dans response") local jsonTable = json.decode(response.data) for i, j in pairs(jsonTable) do fibaro:debug(tostring(i) .. " - " .. tostring(j)) end end,

Footer title

This content can be configured within your theme settings in your ACP. You can add any HTML including images, paragraphs and lists.

Footer title

This is an example of a list.

Footer title

This content can be configured within your theme settings in your ACP. You can add any HTML including images, paragraphs and lists.

Footer title

This content can be configured within your theme settings in your ACP. You can add any HTML including images, paragraphs and lists.

×
/* Navigation */ function ipsfocusNavigation() { var navwidth = 0; var morewidth = $('.ipsNavBar_primary .focus-nav-more').outerWidth(true); $('.ipsNavBar_primary > ul > li:not(.focus-nav-more)').each(function() { navwidth += $(this).outerWidth( true ) + 2; }); var availablespace = $('.ipsNavBar_primary').outerWidth(true) - morewidth; if (availablespace > 0 && navwidth > availablespace) { var lastItem = $('.ipsNavBar_primary > ul > li:not(.focus-nav-more)').last(); lastItem.attr('data-width', lastItem.outerWidth(true)); lastItem.prependTo($('.ipsNavBar_primary .focus-nav-more > ul')); ipsfocusNavigation(); } else { var firstMoreElement = $('.ipsNavBar_primary li.focus-nav-more li').first(); if (navwidth + firstMoreElement.data('width') < availablespace) { firstMoreElement.insertBefore($('.ipsNavBar_primary .focus-nav-more')); } } if ($('.focus-nav-more li').length > 0) { $('.focus-nav-more').removeClass('focus-nav-hidden'); } else { $('.focus-nav-more').addClass('focus-nav-hidden'); } } $(window).on('load',function(){ $(".ipsNavBar_primary").removeClass("focus-nav-loading"); ipsfocusNavigation(); }); $(window).on('resize',function(){ ipsfocusNavigation(); }); // Make hover navigation work with touch devices // http://osvaldas.info/drop-down-navigation-responsive-and-touch-friendly ;(function(e,t,n,r){e.fn.doubleTapToGo=function(r){if(!("ontouchstart"in t)&&!navigator.msMaxTouchPoints&&!navigator.userAgent.toLowerCase().match(/windows phone os 7/i))return false;this.each(function(){var t=false;e(this).on("click",function(n){var r=e(this);if(r[0]!=t[0]){n.preventDefault();t=r}});e(n).on("click touchstart MSPointerDown",function(n){var r=true,i=e(n.target).parents();for(var s=0;s ul > li:has(ul)').doubleTapToGo(); var browserResponsiveWidth = 980; var defaultBrowserWidth = $(window).width(); var headerHeight = $("#header").height(); var headerWrap = $(".headerWrap"); var headerBackgrounds = $(".headerBackgrounds"); var headerBlur = $(".headerBlur"); var blurEnd = 110; var headerEffects = function(){ var amountScrolled = $(window).scrollTop(); // Make navigation fixed if( amountScrolled >= headerHeight ){ headerWrap.addClass("fixedBlur"); } else { headerWrap.removeClass("fixedBlur"); } // Blur header if( (amountScrolled <= blurEnd) ){ headerWrap.removeClass("blurred"); } else { headerWrap.addClass("blurred"); } // Parallax effect var translateHeader = amountScrolled / 2; if( amountScrolled <= headerHeight ){ headerBackgrounds.css( "margin-top", translateHeader + "px" ); } else { headerBackgrounds.css( "margin-top", (headerHeight / 2) + "px" ); } } if( $('body').hasClass('wDesktop') ){ $(window).scroll(function(){ headerEffects(); }); }; });