And Just to make it easy to send commands
command = {
PowerOff="AAAAAQAAAAEAAAAvAw==",
["PowerOn"]="AAAAAQAAAAEAAAAuAw==",
["VolumeUp"]="AAAAAQAAAAEAAAASAw==",
["VolumeDown"]="AAAAAQAAAAEAAAATAw==",
["Mute"]="AAAAAQAAAAEAAAAUAw==",
["Input"]="AAAAAQAAAAEAAAAlAw==",
["GGuide"]="AAAAAQAAAAEAAAAOAw==",
["EPG"]="AAAAAgAAAKQAAABbAw==",
["Favorites"]="AAAAAgAAAHcAAAB2Aw==",
["Display"]="AAAAAQAAAAEAAAA6Aw==",
["Home"]="AAAAAQAAAAEAAABgAw==",
["Options"]="AAAAAgAAAJcAAAA2Aw==",
["Return"]="AAAAAgAAAJcAAAAjAw==",
["Up"]="AAAAAQAAAAEAAAB0Aw==",
["Down"]="AAAAAQAAAAEAAAB1Aw==",
["Right"]="AAAAAQAAAAEAAAAzAw==",
["Left"]="AAAAAQAAAAEAAAA0Aw==",
["Confirm"]="AAAAAQAAAAEAAABlAw==",
["Red"]="AAAAAgAAAJcAAAAlAw==",
["Green"]="AAAAAgAAAJcAAAAmAw==",
["Yellow"]="AAAAAgAAAJcAAAAnAw==",
["Blue"]="AAAAAgAAAJcAAAAkAw==",
["Num1"]="AAAAAQAAAAEAAAAAAw==",
["Num2"]="AAAAAQAAAAEAAAABAw==",
["Num3"]="AAAAAQAAAAEAAAACAw==",
["Num4"]="AAAAAQAAAAEAAAADAw==",
["Num5"]="AAAAAQAAAAEAAAAEAw==",
["Num6"]="AAAAAQAAAAEAAAAFAw==",
["Num7"]="AAAAAQAAAAEAAAAGAw==",
["Num8"]="AAAAAQAAAAEAAAAHAw==",
["Num9"]="AAAAAQAAAAEAAAAIAw==",
["Num0"]="AAAAAQAAAAEAAAAJAw==",
["Num11"]="AAAAAQAAAAEAAAAKAw==",
["Num12"]="AAAAAQAAAAEAAAALAw==",
["Tv"]="AAAAAQAAAAEAAAAkAw==",
["Hdmi1"]="AAAAAgAAABoAAABaAw==",
["Hdmi2"]="AAAAAgAAABoAAABbAw==",
["Hdmi3"]="AAAAAgAAABoAAABcAw==",
["Hdmi4"]="AAAAAgAAABoAAABdAw==",
["Google"]="AAAAAgAAAMQAAAA7Aw==",
["ActionMenu"]="AAAAAgAAAMQAAABLAw==",
["ChannelUp"]="AAAAAQAAAAEAAAAQAw==",
["ChannelDown"]="AAAAAQAAAAEAAAARAw==",
["SubTitle"]="AAAAAgAAAJcAAAAoAw==",
["ClosedCaption"]="AAAAAgAAAKQAAAAQAw==",
["Enter"]="AAAAAQAAAAEAAAALAw==",
["DOT"]="AAAAAgAAAJcAAAAdAw==",
["Analog"]="AAAAAgAAAHcAAAANAw==",
["Teletext"]="AAAAAQAAAAEAAAA/Aw==",
["Exit"]="AAAAAQAAAAEAAABjAw==",
["Analog2"]="AAAAAQAAAAEAAAA4Aw==",
["AD"]="AAAAAgAAABoAAAA7Aw==",
["Digital"]="AAAAAgAAAJcAAAAyAw==",
["Analog"]="AAAAAgAAAJcAAAAuAw==",
["BS"]="AAAAAgAAAJcAAAAsAw==",
["CS"]="AAAAAgAAAJcAAAArAw==",
["BSCS"]="AAAAAgAAAJcAAAAQAw==",
["Ddata"]="AAAAAgAAAJcAAAAVAw==",
["PicOff"]="AAAAAQAAAAEAAAA+Aw==",
["Tv_Radio"]="AAAAAgAAABoAAABXAw==",
["Theater"]="AAAAAgAAAHcAAABgAw==",
["SEN"]="AAAAAgAAABoAAAB9Aw==",
["InternetWidgets"]="AAAAAgAAABoAAAB6Aw==",
["InternetVideo"]="AAAAAgAAABoAAAB5Aw==",
["Netflix"]="AAAAAgAAABoAAAB8Aw==",
["SceneSelect"]="AAAAAgAAABoAAAB4Aw==",
["Mode3D"]="AAAAAgAAAHcAAABNAw==",
["iManual"]="AAAAAgAAABoAAAB7Aw==",
["Audio"]="AAAAAQAAAAEAAAAXAw==",
["Wide"]="AAAAAgAAAKQAAAA9Aw==",
["Jump"]="AAAAAQAAAAEAAAA7Aw==",
["PAP"]="AAAAAgAAAKQAAAB3Aw==",
["MyEPG"]="AAAAAgAAAHcAAABrAw==",
["ProgramDescription"]="AAAAAgAAAJcAAAAWAw==",
["WriteChapter"]="AAAAAgAAAHcAAABsAw==",
["TrackID"]="AAAAAgAAABoAAAB+Aw==",
["TenKey"]="AAAAAgAAAJcAAAAMAw==",
["AppliCast"]="AAAAAgAAABoAAABvAw==",
["acTVila"]="AAAAAgAAABoAAAByAw==",
["DeleteVideo"]="AAAAAgAAAHcAAAAfAw==",
["PhotoFrame"]="AAAAAgAAABoAAABVAw==",
["TvPause"]="AAAAAgAAABoAAABnAw==",
["KeyPad"]="AAAAAgAAABoAAAB1Aw==",
["Media"]="AAAAAgAAAJcAAAA4Aw==",
["SyncMenu"]="AAAAAgAAABoAAABYAw==",
["Forward"]="AAAAAgAAAJcAAAAcAw==",
["Play"]="AAAAAgAAAJcAAAAaAw==",
["Rewind"]="AAAAAgAAAJcAAAAbAw==",
["Prev"]="AAAAAgAAAJcAAAA8Aw==",
["Stop"]="AAAAAgAAAJcAAAAYAw==",
["Next"]="AAAAAgAAAJcAAAA9Aw==",
["Rec"]="AAAAAgAAAJcAAAAgAw==",
["Pause"]="AAAAAgAAAJcAAAAZAw==",
["Eject"]="AAAAAgAAAJcAAABIAw==",
["FlashPlus"]="AAAAAgAAAJcAAAB4Aw==",
["FlashMinus"]="AAAAAgAAAJcAAAB5Aw==",
["TopMenu"]="AAAAAgAAABoAAABgAw==",
["PopUpMenu"]="AAAAAgAAABoAAABhAw==",
["RakurakuStart"]="AAAAAgAAAHcAAABqAw==",
["OneTouchTimeRec"]="AAAAAgAAABoAAABkAw==",
["OneTouchView"]="AAAAAgAAABoAAABlAw==",
["OneTouchRec"]="AAAAAgAAABoAAABiAw==",
["OneTouchStop"]="AAAAAgAAABoAAABjAw==",
["DUX"]="AAAAAgAAABoAAABzAw==",
["FootballMode"]="AAAAAgAAABoAAAB2Aw==",
["Social"]="AAAAAgAAABoAAAB0Aw=="}
function SendCommand(Command)
local SONY_IP = "10.0.1.5"
local SONY_URL = "http://"..SONY_IP.."/sony/IRCC"
local AUTH_CODE = "2020"
local http = require("socket.http")
local ltn12 = require("ltn12")
local respBody = {}
local REQUEST = "<?xml version=\"1.0\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body><u:X_SendIRCC xmlns:u=\"urn:schemas-sony-com:service:IRCC:1\"><IRCCCode>"..Command.."</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>"
rBody, rCode, rHeaders, rStatus = http.request(
{
method = "POST",
url = SONY_URL,
headers = {
["User-Agent"] = "curl/7.38.0",
["Host"] = SONY_IP,
["Accept"] = "*/*",
["X-Auth-PSK"] = AUTH_CODE,
["Content-Type"] = "text/xml; charset=UTF-8",
["Content-Length"] = tostring(#REQUEST),
["SOAPACTION"] = "\"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC\""
},
source = ltn12.source.string(REQUEST),
sink = ltn12.sink.table(respBody),
redirect = false
}
)
luup.log("http response - code ["..(rCode or "NIL").."] html ["..(table.concat(respBody,"") or "NIL").."]")
end
SendCommand(command["VolumeUp"])