Aller au contenu

971jmd

Membres confirmés
  • Compteur de contenus

    3 525
  • Inscription

  • Dernière visite

Messages posté(e)s par 971jmd


  1. salut à tous 

     

    Je ne sais pas si ça a déjà été posé comme suggestion: 

     

    Ils sont pourrait envisager dans les prochaines versions une commande pour la gestion des ouvrant

     

    Voici ma suggestion: Open Stop Close Stop

     

    GEA.add( {CONDITIONS}, 30, "", {"OpenStopCloseStop", 73} ) 

     

     

    comme pour éclairage on où off : GEA.add( {CONDITIONS}, 30, "", {"OnOff", 73} ) 

     


  2. Il y a 13 heures, ebouilleur a dit :

    Non, je ne connaissais pas. Ca doit être assez récent, si tu test je veux bien ton retour ;)

     

    voici le tuto avec le code 

     

    j'ai tester est ça fonctionne bien

     

    function QuickApp:onInit()
        self:debug("onInit")
    end
    
    local function urlencode(str)
        if str then
            str = str:gsub("\n", "\r\n")
            str =
                str:gsub(
                "([^%w %-%_%.%~])",
                function(c)
                    return ("%%%02X"):format(string.byte(c))
                end
            )
            str = str:gsub(" ", "%%20")
        end
        return str
    end
    
    --xxxxxxxxxxxx      add your title here    xxxxxxxxxxxx
    
    function QuickApp:welcomehome(params)
            local url = "https://"
        print(url)
        local http = net.HTTPClient()
        http:request(url, { 
            options = { 
                method = "GET", 
                headers = {
                    ['User-Agent'] = "Fibaro HC/3.0"
                },
                data = nil
            },
            success = function(response)
                if (response.status == 200) then
                    -- func(json.decode(response.data))
                    print(response.data)
                else
                    self:error("Wrong status '"..response.status.."' in response!")
                end
            end,
            error = function(message)
                self:error("Connection error: " .. message)
            end
        })   
    end
    function QuickApp:onClickButton()
       self:welcomehome("")
    end

     

     

    • Like 1

  3. salut à tous

     

    J'ai une erreur 400 de mon code ci-dessous, après un bonheur de recherche je ne trouve toujours pas le problème.

    Merci d'avance pour votre aide

     

    [22.03.2022] [13:25:39] [DEBUG] [SCENE253]: Erreur : status=400

     

    https://voicemonkey.io/start

     

    
    local var1 = "Hello%20monkey"
    
    local http = net.HTTPClient()
    http:request("https://api.voicemonkey.io/trigger?access_token=xxxxxxxxxxxde15&secret_token=xxxxxxxxxxxxx&monkey=fibaro&announcement="..var1, {
    	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'
    	}
    })

     

     

     

     

     

     


  4. Il y a 3 heures, fredokl a dit :
    
              

    @gorn Essai avec cette ligne.

    Pour le debug, il faut mettre true à la ligne 68 et 69 dans le main.

    salut

     

    Je souhaiterais connaître ou comprendre la ligne de code 

     

    je comprends: si détection entre le coucher et lever du soleil alors allume { id [ "Spot_Allee" ], id [ "Ecl_Terrasse " ], id [ "Guirelande" ]},

     

    Mais là je sais pas à quoi ça correspond    1 * 60 }, "Eclairage allée" )          

     

    et et à quoi correspond dans la condition : (Heure) ?

     

    merci d'avance 

     

     

     

     

     


  5. Pour qu'on comprenne mieux la chose

     

    le code suivant 20 c'est positionné sur la 36e tables et non le paramètre 36 OK

     

    function QuickApp:modif()
      local toto = api.get("/devices/"..Walli)
      toto.properties.parameters[36].value = 99 --ou 33
      api.put("/devices/"..Walli, toto)
    end

     

     

    ET et c'est dernier ci-dessous se positionne directement sur le paramètre 158.

    Après LAZER me disait qu'il est préférable de faire une boucle,   Pourquoi exactement ?

     

     

    function QuickApp:lum99()
    
    local deviceID = 429
    local mycolor = 0
    local data = {
    	id = tonumber(deviceID),
    	properties = {
    		parameters = {
    			{
    				id = 158,
    				size = 2,
    				value = 11
    			}
    		}
    	}
    }
    local response, status = api.put("/devices/"..deviceID, data)
    print("status : " .. status)
    print("response : " .. response)
    
    
    end

     

     


  6. Il y a 6 heures, Fredmas a dit :

    Allé un truc comme ça par exemple, histoire de te laisser comprendre la structure du code pour trouver ton paramètre puis le modifier (attention je n'ai pas réellement essayé de mon coté) :

    
    function QuickApp:modif()
      local toto = api.get("/devices/"..Walli)
      toto.properties.parameters[36].value = 99 --ou 33
      api.put("/devices/"..Walli, toto)
    end

     

     

    Je viens de tester avec ton code et lui par compte aucun problème

     

    Il modifie bien le paramètre en position 36 et visiblement tous les autres paramètres sont toujours là


  7. Le 01/03/2021 à 14:12, Lazer a dit :

    C'est très bien, mais je pense que ce que veut faire @Kana-chan tient en une seule ligne avec api.put(), car il n'a pas besoin de passer par la méthode compliquée avec l'authentification pour juste modifier les propriétés d'un device

     

    Pas testé, mais un truc dans le genre doit faire l'affaire :

    
    local deviceID = fibaro.getGlobalVariable("IdWallPlug")
    local mycolor = 0
    local data = {
    	id = tonumber(deviceID),
    	properties = {
    		parameters = {
    			{
    				id = 62,
    				size = 1,
    				value = mycolor
    			}
    		}
    	}
    }
    local response, status = api.put("/devices/"..deviceID, data)
    print("status : " .. status)
    print("response : " .. response)

     

    salut @Lazer

     

    J'ai testé ton code et j'ai remarqué un bug si on peut appeler ça comme ça, quand on modifie un paramètre on ne peut pas modifier un autre.

     

    Dans ton exemple on modifie le paramètre 12 mets une fois exécuté impossible de modifier un paramètre car quand je vérifie dans l'API du module en question tous les paramètres  sont inexistant disparu.

     

    Il manque une chose au code c'est de trouver un moyen d'actualiser une fois le changement effectué

     

     

     

     

     

     

     

     

     


  8. j'ai tester le code de Lazer il y a quand même un problème, je m'explique.

     

    Si par exemple je souhaite changer le paramètre 12 d'une walli ( paramètre 12 =changer la couleur de l'anneau quand OFF )

    ça fonctionne, mai quand on se rend dans l' API du module concerné, on se rend compte que tous les autres paramètres ont disparu sauf le paramètre 12.

     

    J'ai remarqué qu'il est pas possible ne modifier un autre paramètre car il y en existe qu'un seul. le 12 pour exemple

     

    Visiblement pour faire apparaître tous les paramètres il faut rafraîchir et pour l'instant le code visiblement ne le fais pas

     

    {
            "id": 12,
            "lastReportedValue": 7,
            "lastSetValue": 7,
            "size": 1,
            "value": 7
          }

     


  9. j'ai tester comme ça :

     

    function QuickApp:modif()
    api.put ("/devices/"..Walli).properties.parameters[36], value='99'
    end

     

     

    [13.12.2021] [21:07:05] [TRACE] [QUICKAPP470]: UIEvent: {"values":[null],"deviceId":470,"elementName":"modif","eventType":"onReleased"}
    [13.12.2021] [21:07:05] [DEBUG] [QUICKAPP470]: ./include/main.lua:25: attempt to index a nil value (field 'properties')
    [13.12.2021] [21:07:05] [ERROR] [QUICKAPP470]: QuickApp crashed
    [13.12.2021] [21:07:05] [ERROR] [QUICKAPP470]: Unknown error occurred: handleJsonRpc

     

×