Home AMX User Forum AMXForums Archive Threads Residential Forum

Tivo Control over IP

Hey - anybody out there doing any control of a Tivo unit over IP (port 31339)? I was just talking to a non-AV guy who said he was playing with it but was getting weird results.

Wondered if anybody out here was activley doing it or knows anythign about it.

Comments

  • alexsquaredalexsquared Posts: 166
    Doesn't the tivo module on amx use IP for control natively? I've heard, though, it is just essentially IR over IP. The only feedback you get is if the unit is on or not.
  • JohnMichnrJohnMichnr Posts: 279
    From what I've seen of the protocol yeah - it is just IR over IP with some channel information.
  • PHSJasonPHSJason Posts: 66
    I use it all the time. Basically just IR commands with a few extensions like 'teleport' to specific places in the menus etc, as well as the ability to tune directly to a channel without entering each digit, and the ability to read the channel state of each tuner for feedback. I have had no problem with it in the last year or so and have even been using it in my home for quite a while. Works good.
  • JohnMichnrJohnMichnr Posts: 279
    You wanna post a string or 2
  • viningvining Posts: 4,368
    Has anyone been able to get their hands on the official protocol or are you just dealing with bits and pieces you get from the various TiVo forums?
  • JohnMichnrJohnMichnr Posts: 279
    There is a company C macro that lists the codes, but they all seem to be on display here
    http://tivocommunity.com/tivo-vb/showthread.php?t=392385

    Don't know if that helps - not what you really wanted.
  • viningvining Posts: 4,368
    Thanks John,

    Unfortunately I've already been there and took whatever info was useful. I was just wondering if there was some sort of official documetation out there. It seems a little odd that TiVo will tells you this is possible, they gives you an onscreen prompt to permit remote access for this purpose and then they don't publish anything to expalin how to do it. Even if look at the link you provided they appear to be guessing and figuring things out via trial and error.
  • Hi Gents,
    Here in the UK we're stuck on TiVo version one but many have added an ethernet card and Tivoweb modules that hen become a web interface to tivo. Once this has been done, opening an IP client to send these strings works like a charm. My home system has been running like this for several years.
    You'll see at the bottom of this list some preset calls. These are not stored in tivo, its just another feature that some kind hacker included to make a direct channel selection without going through the on-screen menus.
    I hope this is useful.
    Jim.

    DEFINE_CALL 'TIVO CONTROLS' (TIVO_BUTTON)
    {
    SELECT
    {
    ACTIVE(TIVO_BUTTON=1): TIVO_SEND='play' // PLAY
    ACTIVE(TIVO_BUTTON=2): TIVO_SEND='pause' // PAUSE
    ACTIVE(TIVO_BUTTON=3): TIVO_SEND='slow' // SLOW
    ACTIVE(TIVO_BUTTON=4): TIVO_SEND='forward' // FWD
    ACTIVE(TIVO_BUTTON=5): TIVO_SEND='reverse' // REW
    ACTIVE(TIVO_BUTTON=6): TIVO_SEND='skipforward' // SKIP FWD
    ACTIVE(TIVO_BUTTON=7): TIVO_SEND='exit' // RETURN
    ACTIVE(TIVO_BUTTON=10): TIVO_SEND='num0' // 0
    ACTIVE(TIVO_BUTTON=11): TIVO_SEND='num1' // 1
    ACTIVE(TIVO_BUTTON=12): TIVO_SEND='num2' // 2
    ACTIVE(TIVO_BUTTON=13): TIVO_SEND='num3' // 3
    ACTIVE(TIVO_BUTTON=14): TIVO_SEND='num4' // 4
    ACTIVE(TIVO_BUTTON=15): TIVO_SEND='num5' // 5
    ACTIVE(TIVO_BUTTON=16): TIVO_SEND='num6' // 6
    ACTIVE(TIVO_BUTTON=17): TIVO_SEND='num7' // 7
    ACTIVE(TIVO_BUTTON=18): TIVO_SEND='num8' // 8
    ACTIVE(TIVO_BUTTON=19): TIVO_SEND='num9' // 9
    ACTIVE(TIVO_BUTTON=20): TIVO_SEND='select' // SELECT or Enter
    ACTIVE(TIVO_BUTTON=21): TIVO_SEND='up' // UP
    ACTIVE(TIVO_BUTTON=22): TIVO_SEND='down' // DOWN
    ACTIVE(TIVO_BUTTON=23): TIVO_SEND='left' // LEFT
    ACTIVE(TIVO_BUTTON=24): TIVO_SEND='right' // RIGHT
    ACTIVE(TIVO_BUTTON=30): TIVO_SEND='tivo' // TIVO
    ACTIVE(TIVO_BUTTON=31): TIVO_SEND='standby' // OFF
    ACTIVE(TIVO_BUTTON=32): TIVO_SEND='livetv' // LIVE TV
    ACTIVE(TIVO_BUTTON=33): TIVO_SEND='auxbypass' // AUX
    ACTIVE(TIVO_BUTTON=34): TIVO_SEND='vcrbypass' // VCR
    ACTIVE(TIVO_BUTTON=35): TIVO_SEND='surfup' // CH. UP
    ACTIVE(TIVO_BUTTON=36): TIVO_SEND='surfdown' // CH. DOWN
    ACTIVE(TIVO_BUTTON=37): TIVO_SEND='tivo tivo' // Now Showing
    ACTIVE(TIVO_BUTTON=38): TIVO_SEND='pageup' // Page up
    ACTIVE(TIVO_BUTTON=39): TIVO_SEND='pagedown' // Page down
    ACTIVE(TIVO_BUTTON=40): TIVO_SEND='record' // Record
    ACTIVE(TIVO_BUTTON=41): TIVO_SEND='1/0/1' // BBC1 Direct
    ACTIVE(TIVO_BUTTON=42): TIVO_SEND='1/0/3' // ITV Direct
    ACTIVE(TIVO_BUTTON=43): TIVO_SEND='3/0/1' // Movie Direct
    ACTIVE(TIVO_BUTTON=44): TIVO_SEND='5/0/1' // Sky News Direct
    }
    CALL 'TIVO_CONTROL'
    }

    DATA_EVENT[dvTIVOWEB]
    {
    ONLINE: (* Socket connected *)
    {
    ON[TIVO_CONNECTED]
    SEND_STRING dvTIVOWEB,"'GET /sendkey/',TIVO_SEND,' HTTP/1.1',13,10,13,10,'Host: 192.168.0.150',13,10,13,10"
    }
    OFFLINE:
    {
    OFF[TIVO_CONNECTED]
    CLEAR_BUFFER TIVO_BUFFER
    }
    STRING:
    {
    }
    ONERROR:
    {
    IF(DATA.Number <> 0)
    {
    SEND_STRING 0,"getSocketError(DATA.Number)"
    }
    }
    }

    DEFINE_CALL 'TIVO_CONTROL'
    {
    CLEAR_BUFFER TIVO_BUFFER
    IP_CLIENT_OPEN(dvTIVOWEB.Port,'192.168.0.150',80,IP_TCP)
    SEND_COMMAND dvDEBUG,"'Tivo send =',TIVO_SEND"
    }
  • viningvining Posts: 4,368
    In case you guys ever get series 3 boxes here are those commands:
    (copied from a TiVo forum link previously posted and placed in arrays)
    DEFINE_CONSTANT //COMMANDS
         
    CHAR TiVo_CMD[][12] = 
         
         {
         'UP',	          //1
         'DOWN',            //2
         'LEFT',            //3
         'RIGHT',           //4
         'SELECT',          //5
         'TIVO',            //6
         'LIVETV',          //7
         'THUMBSUP',        //8
         'THUMBSDOWN',      //9
         'CHANNELUP',       //10
         'CHANNELDOWN',     //11
         'RECORD',          //12
         'DISPLAY',         //13
         'DIRECTV',         //14
         'NUM0',            //15
         'NUM1',            //16
         'NUM2',            //17
         'NUM3',            //18
         'NUM4',            //19
         'NUM5',            //20
         'NUM6',            //21
         'NUM7',            //22
         'NUM8',            //23
         'NUM9',            //24
         'ENTER',           //25
         'CLEAR',           //26
         'PLAY',            //27
         'PAUSE',           //28
         'SLOW',            //29
         'FORWARD',         //30
         'REVERSE',         //31
         'STANDBY',         //32
         'NOWSHOWING',      //33
         'REPLAY',          //34
         'ADVANCE',         //35
         'DELIMITER',       //36
         'GUIDE',           //37
         'INFO',           	//38
         'WINDOW',         	//39
         '',          	//40
         '',           	//41
         '',           	//42
         '',           	//43
         '',           	//44
         ''            	//45 can go up to and include button 80
         } ;   
    
    DEFINE_CONSTANT //COMMAND TYPES
    
    CHAR TiVo_CMD_TYPE[][12] = 
         
         {
         'KEYBOARD',	//1	//KEYBOARD - The current purpose and syntax of this command is unknown.
         'TELEPORT',        //2	//TELEPORT <PLACE>- I'm not sure why this command exists, because I believe anything that 
    			        //TELEPORT does can also be accomplished via IRCODE. That said, the four currently known 
    				//places you can "teleport" to are TIVO, LIVETV, GUIDE, and NOWPLAYING.
         'SETCH',           //3     //SETCH <CHANNEL> - This command will change the channel on the current tuner being watched 
    			        //to the channel number defined. If the current tuner is recording a program, it will change the other tuner. 
    				//If both tuners are recording, the channel will not change and the TiVo will respond with 
    				//"CH_FAILED RECORDING "Show Title". Using this command when a recording is being played back will result in "CH_FAILED NO_LIVE".
         'FORCECH',         //4     //FORCECH <CHANNEL> - This command will force the current tuner to the tune the desired channel regardless 
    			        //of what it's doing. If a recording is being recorded it will cancel the recording and change the channel without confirmation.
         'IRCODE'           //5     //IRCODE <COMMAND> - IRCODE seems to mimic the old "sendkey" command in almost every way. While it can't handle multiple commands on one line, 
                                    //almost all of the commands listed in sendkey.tcl are valid and working.
         } ;               
    

    For the most commands you'll need to create a string like 'IRCODE CHANNELUP'. The other type commands are for what they state in the comments. SETCH 305.
  • Just saw a note on remote central acout people using something called command fusion for their DirectTV boxes. Not only is it offering control over IP, but also providing feedback (ie it lists their recorded items in a "now playing" list). How freaking cool would that be on the Tivo.
  • John NagyJohn Nagy Posts: 1,742
    This is still beta, they are soliciting comments. I'd sure like them to expose a URL to show the "program art" they now show on screen for each show. It appears absent in the docs...
  • jimmywjimmyw Posts: 112
    tivo module

    dont know if anyone still wants this or needs it, but here is something I whipped together and tested on a series 3 tivo. It has everything you would expect + a keyboard for text entry.

    Jimmy

Sign In or Register to comment.