Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. English
    3. ioBroker general
    4. Simple API Use SOLVED

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Simple API Use SOLVED

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tehMilcho @ap2017 last edited by

      Hey there,

      i got the same Error but little different problem. I have copyed the Object-Path with the little button.

      so i build this URL:
      http://SERVER:8087/set/0_userdata.0.VirtualDevices.hc3lite.FlurPIR-1?value=false&prettyPrint

      The Url works fine in any browser but when i try to use it in my code i get:

      "error: no value found for "0_userdata.0.VirtualDevices.hc3lite.FlurPIR-1". Use /set/id?value=1 or /set/id?value=1&wait=1000"

      I will use it in a Lua Script that runs on the "Fibaro Home center lite". When i rebuild the URL to "toggle" it works fine.. i have no clue whats the issue .. because it makes no sense for me.

      Lua Code:

      local value = fibaro.getValue(52, "value")
      local url
      
      -- Deside if value should be true or false
      if (fibaro.getValue(52, "value") == true) then
      url = 'http://SERVER:8087/set/0_userdata.0.VirtualDevices.hc3lite.FlurPIR-1?value=true&prettyPrint'
      elseif (fibaro.getValue(52, "value") == false) then
      url = 'SERVER/set/0_userdata.0.VirtualDevices.hc3lite.FlurPIR-1?value=false&prettyPrint'
      else 
      print ("No Match")
      end
      
      print(url)
      
      local selfhttp = net.HTTPClient()
      
      local headers = {
              ["Accept"] = "application/json",
              ["Content-Type"] = 'application/json',
              ["Cache-Control"] = "no-cache"
          }
      
      selfhttp:request(url, {
        options={
          method = 'GET',
          headers = headers,
          timeout = 5000
        },
       success = function(response) 
                  print(response.status)
                  print(response.data)
          end,
          error = function(message)
                  print("error:", message)
          end
      })
       
      

      anyone knows something? i think i had the same issue by try to use something like this in Android App - Tasker, but then give out and used toggle.

      1 Reply Last reply Reply Quote 0
      • M
        MCU last edited by

        @tehmilcho sagte in Simple API Use SOLVED:

        http://SERVER:8087/set/0_userdata.0.VirtualDevices.hc3lite.FlurPIR-1?value=true&prettyPrint

        Try to encode the URL

        let encodedUrl = encodeURIComponent(url);
        
        T 1 Reply Last reply Reply Quote 0
        • T
          tehMilcho @MCU last edited by

          @mcu said in Simple API Use SOLVED:

          let encodedUrl = encodeURIComponent(url);

          the Lua Script in Fibaro seems not happy about it:

          [24.11.2023] [22:43:48] [ERROR] [SCENE29]: (load):15: syntax error near 'encodedUrl

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @tehMilcho last edited by

            @tehmilcho In LUA seems to be

            local encodedUrl = url.escape(url)
            
            T 1 Reply Last reply Reply Quote 0
            • T
              tehMilcho @MCU last edited by

              @mcu said in Simple API Use SOLVED:

              local encodedUrl = url.escape(url)

              mhh seems like fibaro specail lua?

              [24.11.2023] [22:54:25] [ERROR] [SCENE29]: (load):23: attempt to call a nil value (field 'escape')

              M 1 Reply Last reply Reply Quote 0
              • M
                MCU @tehMilcho last edited by

                @tehmilcho Do you use it so?

                url = url.escape(url)
                
                selfhttp:request(url, {
                  options={
                    method = 'GET',
                    headers = headers,
                    timeout = 5000
                  },
                  success = function(response) 
                    print(response.status)
                    print(response.data)
                  end,
                  error = function(message)
                    print("error:", message)
                  end
                })
                
                T 1 Reply Last reply Reply Quote 0
                • T
                  tehMilcho @MCU last edited by

                  @mcu yep this leads to "[24.11.2023] [22:54:25] [ERROR] [SCENE29]: (load):23: attempt to call a nil value (field 'escape')"

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MCU @tehMilcho last edited by

                    @tehmilcho sagte in Simple API Use SOLVED:

                    :23: attempt to call a nil value (field 'escape')

                    Try this

                    url = url:gsub("([^A-Za-z0-9_])", function(c) return string.format("%%%02X", string.byte(c)) end)
                    
                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tehMilcho @MCU last edited by

                      @mcu said in Simple API Use SOLVED:

                      url = url:gsub("([^A-Za-z0-9_])", function(c) return string.format("%%%02X", string.byte(c)) end)

                      then it seems to get stuck, no error but will not finsh and also the state in iobroker is not changed, when you Output the new string you will get:

                      http%3A%2F%2F192%2E168%2E178%2E37%3A8087%2Fset%2F0_userdata%2E0%2EVirtualDevices%2Ehc3lite%2EFlurPIR%2D1%3Fvalue%3Dtrue%26prettyPrint

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tehMilcho @tehMilcho last edited by

                        @MCU but this brings me on track, i now swap the "?" with "%3F" now it works .. damn @MCU you are f****** smart 🙂 Thanks a lot. spend already hours on this 🙂

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        869
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        api simple api
                        5
                        22
                        3334
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo