The code in your link was messed up when they updated that forum some years ago. I've rehashed it to give it a chance of working but I suspect you may still have trouble getting it to work. Running it in the Lua test window would be your starting point after reading the
push over api doco.
Another alternative is to use Telegram with the Telegram plugin.
-- Refer to pushover documentation: -- https://pushover.net/api local pushToken = "YourPushOverTokenHere" local pushUser = "YourPushOverUserCodeHere" local pushTitle = "MessageTitle" local pushMessage = "MessageContent" local snapshotFile = "/tmp/camera_snapshot.jpg" local pushPriority = "1" -- Sound could be: pushover bike bugle, cash register, classical, cosmic, falling, -- gamelan, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, -- alien, climb, persistent, echo, updown, none local pushSound = "gamelan" -- Link to the BlueIris videostream of that camera local pushUrl = "http://xxx.xxx.xxx.xxx/mjpg/ShortCamName&user=XXX&pw=XXX" local pushUrlTitle = "Camera Name" -- This points to one of my BlueIris managed cameras local camera = "http://xxx.xxx.xxx.xxx/image/ShortCamName?q=50&s=80&user=XXX&pw=XXX" -- Get the snapshot from the camera local out = assert(io.open(snapshotFile, "wb")) local _,data = luup.inet.wget(camera) out:write(data) assert(out:close()) --Send PushOver request local curlCommandTab = {} table.insert (curlCommandTab, 'curl -s') table.insert (curlCommandTab, '-F "token=' ..pushToken ..'"') table.insert (curlCommandTab, '-F "user=' ..pushUser ..'"') table.insert (curlCommandTab, '-F "title=' ..pushTitle ..'"') table.insert (curlCommandTab, '-F "message=' ..pushMessage ..'"') table.insert (curlCommandTab, '-F attachment=@' ..snapshotFile ..'"') table.insert (curlCommandTab, '-F "sound=' ..pushSound ..'"') table.insert (curlCommandTab, '-F "priority=' ..pushPriority ..'"') table.insert (curlCommandTab, '-F "url=' ..pushUrl ..'"') table.insert (curlCommandTab, '-F "url_title=' ..pushUrlTitle ..'"') -- The .json suffix requests that the response be in JSON format table.insert (curlCommandTab, 'https://api.pushover.net/1/messages.json') local curlCommand = table.concat (curlCommandTab, ' ') print(curlCommand) local handle = io.popen(curlCommand) local result = handle:read("*a") handle:close() print (result) -- Delete temporary snapshot os.remove (snapshotFile)