This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Check the status of television in LM3!
#4
Hi Phongvucba.

Here is a script example for controlling Chromecast:
Code:
-- ****** Control Chromecast with 1 byte object version 1.0 created by Erwin van der Zwart ******* --
-- **************************************** SET PARAMETERS *************************************** --

-- Chromecast IP address
ip_chromecast = '192.168.10.23'

-- Additional info from browser about
-- http://192.168.10.23:8008/ssdp/device-desc.xml
-- http://192.168.10.23:8008/setup/scan_results
-- http://192.168.10.23:8008/setup/eureka_info?options=detail
-- http://192.168.10.23:8008/setup/supported_timezones
-- http://geeknizer.com/how-chromecast-works-chromecast-protocol-explained/

value = event.getvalue()

require 'socket.http'

function control_chromecast(uri, request)
 local request_body = request
 local response_body = { }
 local res, code, response_headers = socket.http.request
 {
   url = "http://" .. ip_chromecast .. ":8008/" .. uri;
   method = "POST";
   headers =
   {
     ["Content-Type"] = "application/x-www-form-urlencoded";
     ["Content-Length"] = #request_body;
   };
   source = ltn12.source.string(request_body);
   sink = ltn12.sink.table(response_body);
 }
 return res, code, response_headers
end

-- Action on value 1
if value == 1 then
    -- Start Youtube video
    res, code, response_headers = control_chromecast('apps/YouTube', [[v=_iuBO1lkch8]])
end

-- Action on value 2
if value == 2 then
    -- Stop Youtube video
    res, code, response_headers = control_chromecast('apps/YouTube', [[DELETE]])
end

-- Action on value 3
if value == 3 then
    -- Start Chromecast Homescreen
    res, code, response_headers = control_chromecast('apps/ChromeCast', [[]])
end

-- Log results
resulthandling = false

if resulthandling == true then
 -- Handler for results
 log("Status:", res and "OK" or "FAILED")
 log("HTTP code:", code)
 log("Response headers:")
 if type(response_headers) == "table" then
   for k, v in pairs(response_headers) do
     log(k, ":", v)
   end
 else
   -- Would be nil, if there is an error
   log("Not a table:", type(response_headers))
 end
 log("Response body:")
 if type(response_body) == "table" then
   log(table.concat(response_body))
 else
 end
end
BR,
Erwin
Reply


Messages In This Thread
RE: Check the status of television in LM3! - by Erwin van der Zwart - 21.07.2016, 19:41

Forum Jump: