XBMC Script

Forum over Homeseer scripts (DUTCH forum)

Moderators: TANE, Ruud

keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

XBMC Script

Post by keeslamper »

Hallo,

Ik wilde het XBMC Script gaan gebruiken wat hier beschreven wordt:

http://board.homeseer.com/showthread.php?t=142187

Maar ik krijg dit niet werkend. Ik krijg de melding "In URLAction GET: De externe server heeft een fout geretourneerd: (404) Niet gevonden."
Iemand enig idee wat hier de oplossing voor kan zijn? Het script is juist, XMBC webserver draait en is te benaderen.

Of heeft iemand een andere oplossing om XBMC te besturen via Homeseer/HStouch?

Hoor het graag!

Kees
vanisher

Re: XBMC Script

Post by vanisher »

De huidige XBMC werkt alleen nog maar met JSON, niet met http requests :-(
keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Je geeft het antwoord waar ik al bang voor was... Heeft te maken met de API las ik al.

Is er een andere oplossing mogelijk dat je weet?
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: XBMC Script

Post by AshaiRey »

Natuurlijk is er een oplossing.
Gebruik eerst JSON om het resultaat op te halen en converteer dat naar het formaat dat je nodig heb waarna je dit aanbied aan de functie.
Bram
keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Bedankt AshaiRey,

Dan wordt het voor mij wachten tot iemand anders dat gedaan heeft, ik weet sinds gister wat JSON is, laat staan dat ik het kan gebruiken....

Groet,
Kees
yoja
Starting Member
Starting Member
Posts: 44
Joined: Wed Feb 24, 2010 12:00 pm

Re: XBMC Script

Post by yoja »

keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Bedankt yoya, die heb ik nu inderdaad! Thanks.
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: XBMC Script

Post by AshaiRey »

Goed te zien dat er ook forumleden zijn die niet beroep gedeformeerd zijn (zoals ik) :-)
Bram
keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Ik zit in spanning te wachten op jouw script Ashai :P
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: XBMC Script

Post by AshaiRey »

Ik heb eens naar het script gekeken en zie dat het alleen een commando naar XBMC stuurt en niets terug verwacht. Dat is mooi want dat houd het lekker simpel.
Er wordt alleen een string gestuurd met daarin het IP adress waarheen het moet en een waarde van een toetsaanslag om een toetsindruk aan de XMBC kant te simuleren.
Weet iemand hoe een werkend command eruit ziet en wil het hier delen zodat ik dat als voorbeeld kan gebruiken?
Ps, ik heb geen XBMC hier om te testen.

Wie heeft er tijd en middelen om voor mij te testen?
Geen garantie dat het ook wat gaat worden.
Je krijgt van mijn code die je moet testen en ik moet het resultaat terug krijgen inclusief foutmeldingen.
Bram
keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Bram,

Ik heb tijd en xbmc om te testen. Het was tenslotte mijn verzoek!

Kees
User avatar
Phaeton
Advanced Member
Advanced Member
Posts: 573
Joined: Wed May 19, 2010 12:44 pm
Location: Wassenaar
Contact:

Re: XBMC Script

Post by Phaeton »

Hoi Bram, Kees,

ik ben hier eerder in gedoken (met iets meer wensen, wilde bv de playlist oproepen en de naam/video die afgespeeld wordt tonen in HStouch) maar kwam er zelf niet uit. Maar hier board.homeseer.com/showthread.php?t=148 ... light=json op het Homeseer forum staan voorbeelden van werkende scripts. Vnl voor eenvoudige zaken.

Ik wil indien nodig ook helpen met testen, geen enkel probleem. Ben via PM bereikbaar en check het forum regelmatig.

grtz,
Harry
Last edited by Phaeton on Wed Mar 20, 2013 5:09 pm, edited 1 time in total.
groeten,
Harry
User avatar
Phaeton
Advanced Member
Advanced Member
Posts: 573
Joined: Wed May 19, 2010 12:44 pm
Location: Wassenaar
Contact:

Re: XBMC Script

Post by Phaeton »

Hierbij een voorbeeld om een text naar XBMC te sturen:

Code: Select all

Dim IP As String = "192.168.0.111"
Dim URLStr As STring = ""
Dim ReplyStr As String = ""

Sub Main(ByVal Parms As Object)

Dim Title As String = "Homeseer Notification"
Dim Message As String = Parms.ToString

'this will take a parameter message and put it into an XBMC notification window


If hs.ping(IP) = 0 Then

'the host is alive

URLStr = "http://" & IP & "/jsonrpc?request={""jsonrpc"":""2.0"",""method"":""GUI.ShowNotification"",""params"":{""title"":" & chr(34) & Title & chr(34) & ",""message"":" & chr(34) & Message & chr(34) & ",""displaytime"":30000}}"

'hs.writelog("XBMC", URLStr)

ReplyStr = hs.urlaction(URLStr,"GET","","")

If ReplyStr <> "" Then


hs.writelog("XBMC", ReplyStr)

End If

Else

hs.writelog("XBMC", "Cannot Send Command - Host Offline")

End If

End Sub

Sub Restart(ByVal Parms As Object)

If hs.ping(IP) = 0 Then

URLStr = "http://" & IP & "/jsonrpc?request={""jsonrpc"":""2.0"",""method"":""System.Reboot""}"

ReplyStr = hs.urlaction(URLStr,"GET","","")


If ReplyStr <> "" Then


hs.writelog("XBMC", ReplyStr)

End If

End If

End Sub
en hier een code die je in HStouch achter een button kan plaatsen:

Code: Select all

&hs.GetURL("http://10.0.0.45","/jsonrpc?request={""jsonrpc"":""2.0"",""method"":""Input.Down ""}",TRUE,8080)
groeten,
Harry
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: XBMC Script

Post by AshaiRey »

Hoi Phaeton,

Even wat checken want ik ben me aan het inlezen in JSON en XBMC.
Het script wat je hierboven gepost hebt werkt dus. Dat is een heel goed startpunt namelijk als dat zo is want ik zie dat het nog steeds met hs.urlaction() werkt. Wat me wel op valt is dat er een GET wordt verzonden terwijl in een HS forum melding gezegt wordt dat dit een POST moet zijn.

Ik heb ondertussen wel een proef scriptje gemaakt met een totaal andere opzet maar als bovenstaande werkt dan gooi ik het plan geheel om
Hier is het met veel debugging info er in voor mij om te zien wat er gebeurd.
Ik heb dus geen idee of onderstaande werkt. (ik krijg hier server not found omdat ik geen XBMC heb)

Code: Select all

Imports System.IO
Imports System.Net
Imports System.Text

'========================================================
'========================================================
'Settings to fill in
Public Dim DEBUG As Boolean = True
Public Dim XBMCServer As String = "http://192.1.168.3"
'========================================================
'========================================================

    Public Sub Main(ByVal Params As Object)
        Dim cmd As String = "{" & Chr(34) & "jsonrpc" & Chr(34) & ": " & Chr(34) & "2.0" & Chr(34) & ", " & Chr(34) & "method" & Chr(34) & ": " & Chr(34)
        cmd = cmd & "JSONRPC.Ping"
        cmd = cmd & Chr(34) & ", " & Chr(34) & "id" & Chr(34) & ": " & Chr(34) & "1" & Chr(34) & "}"
	If DEBUG = True then hs.writelog("AZ_XMBCcmd","JSON string to send = " & cmd )
        PostCommand(cmd)
    End Sub


    Sub PostCommand(strCmd)
	Try
	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Make byte array")
          Dim byteArray As Array = Encoding.ASCII.GetBytes(strCmd)

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Setup webrequest to " & XBMCServer)
          Dim request As WebRequest = WebRequest.Create( XBMCServer )

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Set method to POST")
          request.Method = "POST"

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Set request lenght : " & byteArray.Length)
          request.ContentLength = byteArray.Length

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Set content type")
          request.ContentType = "application/x-www-form-urlencoded"

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Make a data stream")
          Dim dataStream As Stream = request.GetRequestStream()

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Write data")
          dataStream.Write(byteArray, 0, byteArray.Length)


' Get the response.
            Dim response As WebResponse = request.GetResponse()

            ' Display the status.
     	    If DEBUG = True then hs.writelog("AZ_XMBCcmd","Response status :" & (CType(response, HttpWebResponse).StatusDescription) )
            
	    ' Get the stream containing content returned by the server.
            dataStream = response.GetResponseStream()

            ' Open the stream using a StreamReader for easy access.
            Dim reader As New StreamReader(dataStream)

            ' Read the content.
            Dim responseFromServer As String = reader.ReadToEnd()

            ' Display the content.
            hs.writelog("AZ_XMBCcmd","Response from server :" & responseFromServer)

	  If DEBUG = True then hs.writelog("AZ_XMBCcmd","Close data stream")
            ' Clean up the streams.
            reader.Close()
            dataStream.Close()
            response.Close()

	Catch ex As Exception
	  hs.writelog("AZ_XMBCcmd","Connection to XBMC failed due:" & ex.Message )
	  Exit Sub
	End try
    End Sub
Bram
keeslamper
Member
Member
Posts: 152
Joined: Wed Apr 11, 2012 11:21 am

Re: XBMC Script

Post by keeslamper »

Bram,

Ik wil jouw script proberen maar moet ik dit als vb script opslaan? Hoe krijg ik het dan in hstouch?

Kees
Post Reply

Return to “Homeseer Scripts Forum”