NEWS
Simple API Use SOLVED
-
@ap2017 Thanks for the clarifications.
What happens if you open the URL in your browser? Do you get a JSON response similar to the following or an error message?
{"id":"javascript.0.Pi-detection","value":true}How do you know that you are "getting nothing"?
-
@UncleSam In browser I am getting error message
"error: datapoint "javascript.0.Pi-detection" not found"
I monitor variable PI-detection as Boolean widget in VIS -
@ap2017 Can you please share a screenshot of your object tree in ioBroker where we can see the mentioned state (and its parents)?
-
@ap2017 So, did you copy the state ID the way I asked you to?
Because it seems to me that the name should be
javascript.0.variables.PI-detection@UncleSam Thank you, with subfolder "variables" added I am getting browser response
{"id":"javascript.0.variables.PI-detection","value":true,"val":true}Now I need to figure out how MotionEye notification work, since I PI-detection does not change in response to motion
-
@ap2017 So, did you copy the state ID the way I asked you to?
Because it seems to me that the name should be
javascript.0.variables.PI-detection -
@UncleSam Everything works now. I did not realized that I have to reset the web hook variable after motion is detected.
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&prettyPrintThe 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.
-
@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); -
@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); -
@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
@tehmilcho In LUA seems to be
local encodedUrl = url.escape(url) -
@tehmilcho In LUA seems to be
local encodedUrl = url.escape(url) -
@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')
@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 }) -
@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 }) -
@mcu yep this leads to "[24.11.2023] [22:54:25] [ERROR] [SCENE29]: (load):23: attempt to call a nil value (field 'escape')"
@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) -
@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)@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
-
@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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
