Advertisement
Guest User

Untitled

a guest
Feb 15th, 2020
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1.  
  2. Imports System.Net.Sockets
  3. Const mType As String = "drhs_SamsungTV"
  4. Const tvip As String = "1.1.1.1" 'Set a static IP address for your TV and edit this string to match that.
  5. Const tvport As Int32 = 55000 'This is the standard port that the TV listens on. Do not change it.
  6. Const mymac = "00-00-00-00-00-00" ' Enter your HS host MAC address here. This is used for the access control/validation, but not after that AFAIK
  7. Const appstring = "iphone..iapp.samsung" ' What the iPhone app reports
  8. Const tvappstring = "iphone.UN55C8000.iapp.samsung" ' Might need changing to match your TV type
  9. Const remotename = "Homeseer Samsung Remote" ' What gets reported when it asks for permission/also shows in General->Wireless Remote Control menu
  10.  
  11. Public Sub Main(ByVal Params As Object)
  12. If Params IsNot Nothing Then
  13. Dim tcpClient As New System.Net.Sockets.TcpClient()
  14. tcpClient.Connect(tvip, tvport)
  15. Dim networkStream As NetworkStream = tcpClient.GetStream()
  16. If networkStream.CanWrite Then
  17. Dim Messagepart3 As String = ""
  18. Dim ByteArrayOut() As Byte = StrToByteArray(MessagePart1)
  19. networkStream.Write(ByteArrayOut, 0, ByteArrayOut.Length)
  20. ByteArrayOut = StrToByteArray(MessagePart2)
  21. networkStream.Write(ByteArrayOut, 0, ByteArrayOut.Length)
  22. Dim argv As String() = Params.ToString.Split("|")
  23. If Left(UCase(argv(0)),4) = "KEY_" Then
  24. Dim mp3 As String = Chr(0) & Chr(0) & Chr(0) & Chr(Len(Base64Encode(argv(0)))) & Chr(0) & Base64Encode(argv(0))
  25. MessagePart3 = Chr(0) & Chr(Len(tvappstring)) & Chr(0) & tvappstring & Chr(Len(mp3)) & Chr(0) & mp3
  26. Else
  27. Dim mp3 As String = Chr(1) & Chr(0) & Chr(0) & Chr(Len(Base64Encode(argv(0)))) & Chr(0) & Base64Encode(argv(0))
  28. MessagePart3 = Chr(1) & Chr(Len(tvappstring)) & Chr(0) & tvappstring & Chr(Len(mp3)) & Chr(0) & mp3
  29. End If
  30. ByteArrayOut = StrToByteArray(MessagePart3)
  31. networkStream.Write(ByteArrayOut, 0, ByteArrayOut.Length)
  32. networkStream.Close()
  33. tcpClient.Close()
  34. End If
  35. End If
  36. End Sub
  37.  
  38. Private Function MessagePart1() As String
  39. 'Dim myip As String = hs.GetIPAddress ' Doesn't seem to be really used
  40. Dim myip as String = "2.2.2.2" 'Set your HS Host IP address here
  41. Dim messagepart1x As String = Chr(&H64) & Chr(0) & Chr(Len(Base64Encode(myip))) & Chr(0) & Base64Encode(myip) & Chr(Len(Base64Encode(mymac))) & Chr(0) & Base64Encode(mymac) & Chr(Len(Base64Encode(remotename))) & Chr(0) & Base64Encode(remotename)
  42. Dim part1 As String = Chr(0) & Chr(Len(appstring)) & Chr(0) & appstring & Chr(Len(messagepart1x)) & Chr(0) & messagepart1x
  43. Return part1
  44. End Function
  45.  
  46. Private Function MessagePart2() As String
  47. Dim messagepart2x As String = Chr(&HC8) & Chr(0)
  48. Dim part2 As String = Chr(0) & Chr(Len(appstring)) & Chr(0) & appstring & Chr(Len(messagepart2x)) & Chr(0) & messagepart2x
  49. Return part2
  50. End Function
  51.  
  52. Private Function Base64Encode(ByVal InputString As String)
  53. Dim byt As Byte() = System.Text.Encoding.UTF8.GetBytes(InputString)
  54. Return Convert.ToBase64String(byt)
  55. End Function
  56.  
  57. Private Function StrToByteArray(str As String) As Byte()
  58. Dim ByteArray(Len(str)-1) as Byte
  59. For n As Short = 0 To UBound(ByteArray)
  60. ByteArray(n) = Asc(Mid(str,n + 1,1))
  61. Next
  62. Return ByteArray
  63. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement