# Channel Map Tivoweb module



## Zirak

The is the new and improved (final?) Tivoweb module to remap channel numbers for a given station.

Earlier versions would fail under certain conditions. (if you had LOTS of channels)

There are also several other usability improvements.

Rename the module to ChannelMap.itcl before dropping in your modules directory.

Attachment has been deleted. Get it from the Tivoweb site, http://tivo.lightn.org/


----------



## ModiStru

"Channel object was malformed. This can't happen, but it did!"

Trying to remap the 'Food' network. Guide data states it's on a different channel than what is mapped in the cable lineup. Kinda sucks when you want to record the 'Iron Chef' and get a 1hr. ad for a device that electrically stimulates your face into a perpetual look of surprise.

Info:
2 x Philips 312 SA +80GB * drive
2.5.1
TiVoNet
TiVoWeb 1.9.3 + FSID mod
Digital cable (150+ entries in the channel lineup)*


----------



## Zirak

What is the channel object? (available from the ChannelMap channel list page?)

I have a tendency to overcode error checks. All my objects are of the form XXXX/XXX, and I assume that they all must be of this format. If its not the case, I will remove the error check, and everything should be groovy.


----------



## ModiStru

Here is the excerpt from the listchan page of the object I'd like to modify...

FOOD 64 Rebuild Extended Basic 591262/5200 591041/-1 
FOOD 64 Digital Rebuild Extended Basic 591262/5060 591041/-1 


The 'Digital Rebuild...' lineup is what's being used.

Thanks!


----------



## ModiStru

So after my last reply I decided that you had given me enough of a hint to jump in & modify the code.

Changed line 91 to:
if {![string compare [string index $Channel 6] "/"]==0} {

This worked for my case, but I assume that forcing the check to 6 will not work for everyone. BTW, all my channel objects are in the form XXXXXX/XXXX.

Thanks a bunch!


----------



## Zirak

> _Originally posted by ModiStru _
> *So after my last reply I decided that you had given me enough of a hint to jump in & modify the code.
> 
> Changed line 91 to:
> if {![string compare [string index $Channel 6] "/"]==0} {
> 
> This worked for my case, but I assume that forcing the check to 6 will not work for everyone. BTW, all my channel objects are in the form XXXXXX/XXXX.
> 
> Thanks a bunch! *


Indeed that is it. An update is attached that allows an arbitrary length object and subobject.

Attachment deleted, newer version at bottom.


----------



## ModiStru

Thanks!

All my base belong to you


----------



## airplanedan

I'm using your module with a sa tivo 3.0 and tivoweb 1.9.4b2 and it appears to be working correctly. Channels that I remap are displayed with the new numbers, however the tivo doesn't seem to recognize the changes. I've rebooted multiple times but still the original channel mappings are being used. Channelmap continues to see the correct (remapped) channel mappings. Any ideas?


----------



## Zirak

> _Originally posted by airplanedan _
> *I'm using your module with a sa tivo 3.0 and tivoweb 1.9.4b2 and it appears to be working correctly. Channels that I remap are displayed with the new numbers, however the tivo doesn't seem to recognize the changes. I've rebooted multiple times but still the original channel mappings are being used. Channelmap continues to see the correct (remapped) channel mappings. Any ideas? *


Apparently a reboot won't do the trick anymore. Go to Messages & Setup / My Preferences / Customize Channels / Cable Lineups, and change the lineup to something else. Then change it back. That should commit the changes. You will have to re-customize the "channels you receive" section.

I guess I could make the module do this too.


----------



## airplanedan

Thanks. Looks like it worked but I'll know for sure when I get home. Now that I finally installed my Tivonet after having it sit on a shelf for a year I'll be doing some poking around. Who knows... maybe I'll figure out how to force the refresh.


----------



## Zirak

This version adds:

1) Ability to commit changes to the "active" lineup. No need to change the lineup back and forth in setup. Its much more convenient since setup also resets channels you receive, etc.

2) Ability to Save the current lineup configuration.

3) Ability to reload the saved configuration. Useful if you are constantly getting "incorrect" updates. I understand this happens frequently in the UK.

Drop the .txt extension and drop in the modules folder.

Tested with 3.0, don't anticipate problems in 2.5.1.

As always, use at your own risk.

Attachment deleted. See next message.


----------



## Zirak

Well, I assumed that once you did a setup the the channel objects in the lineups were fixed for all time. Bad assumption. A week or two ago I got a lineup change that ONLY added a PPV preview channel. For some reason this caused the channel objects in the lineups to be recreated from scratch. Kinda strange, but it is what it is.

This version will attempt to rebuild the map using the old lineup names and channel names, i.e. CNN/Extended Basic.

If that doesn't work, you will have to fall back to a manual rebuild.

Again, the last version until something else breaks!

Drop the txt extension, put in the tivoweb modules directory.

Attachment deleted, module is now on tivoweb site.

ChannelMap module


----------



## gardavis

I just tried your new module after failing with an older version.

I did experience a problem. I remapped 2 channels but when I committed the change, the remapping occurred in the wrong order


My mapping request:
(2203/-1) Changing HBOZ - {Home Box Office Zone} From Ch:559 To Ch: 560
(2202/-1) Changing HBOC - {Home Box Office Comedy} From Ch:557 To Ch: 559


Committing happened backwards:
(2202/-1) Applying HBOC - {Home Box Office Comedy} From Ch:557 To Ch: 559
(2203/-1) Applying HBOZ - {Home Box Office Zone} From Ch:559 To Ch: 560

The result is HBOZ on 560 and HBOC disappeared instead of being on 559!

I guess I will have to do this in 2 steps.

Thanks for this module!

Edit:
559 (HBOC) disappeared from the Tivo but does display in the channelmap list correctly.

Edit:
I was able to find 559 in "Channels You Receive" and it was unchecked. Checking it on solved the issue. Note that 560 was already checked on.


----------



## Zirak

Commiting changes will happen in alphabetical order, per lineup. The module checks both the long and short name to identify matches (Home Box Office Zone, and HBOZ). It does not use the channel number.

The module doesn't tamper with any favorite/channel you receive information. I am at a loss for how it would have been "switched off," unless it was previously switched off.

Was it unchecked before you started?


----------



## gardavis

Before:

557 and 559 were checked on and 560 did not exist.

After:
559 was checked off and 560 was checked on. 557 no longer exists.

Thanks,
Gary


----------



## Zirak

I tried, but can't reproduce the behavior. The "channels you receive" information isn't stored in the same place in the database. I haven't been able to locate it. This might be some kind of D-Tivo thing. 

I would be interested in hearing if others see the same behavior, and what kind of system they have. But...

At this point, chalk it up to PFM.


----------



## gardavis

My Tivo is a Sony SVR 2000 (standalone).


----------



## tlphipps

OK, I hope someone can help me with this. I've searched all over this forum for two days now and can't find an answer.

I receive my local channels through my apartment complex's cable system (for FREE). Unfortunately they remap the UHF channels.

My problem is this, when I used the channel map module, the channel was remapped to the correct number, but on the satellite connection, NOT the RF connection (that's where my local cable is input). Is there any way to force the remap to happen on channel xx(ant) as opposed to channel xx(sat)?


----------



## Zirak

> _Originally posted by tlphipps _
> *OK, I hope someone can help me with this. I've searched all over this forum for two days now and can't find an answer.
> 
> I receive my local channels through my apartment complex's cable system (for FREE). Unfortunately they remap the UHF channels.
> 
> My problem is this, when I used the channel map module, the channel was remapped to the correct number, but on the satellite connection, NOT the RF connection (that's where my local cable is input). Is there any way to force the remap to happen on channel xx(ant) as opposed to channel xx(sat)? *


Sounds like the multiple headend problem. This module will only look at the lineups in the first headend. It shouldn't be hard to make the module work on multiple headends, but, I have a single headend standalone - no way to test it.

Short of making it work with multiple headends, if you are somewhat adept, you should be able to switch which headend it looks at, and remap the other channels. I can point you to the three lines to change if you wish, and help as I can. I don't think its particularly risky to try, but I make no guarantee. As always, make sure you have a backup.

Ah, and its probably a bad idea to simultaneously run two copies of the module, one for each headend.


----------



## tlphipps

OK, I'm feeling adventurous. If you'll help me out, I'll see what damage (hopefully not) I can do.


----------



## Zirak

Ok. I really don't think this will cause any problem, but I don't want to be responsible for screwing up your tivo. I think the risk is negligible - I will help, the risk is yours.

Change the 3 lines that contain this:

set headend [dbobj [lindex $source 0] get Headend]

to this:

set headend [dbobj [lindex $source 1] get Headend]


----------



## tlphipps

well, i changed those lines and did receive new information in the module, but it already had the correct numbers for those channels. The information it pulled up appeared to be information for the local cable companies in the area. I have my TiVO setup to recognize the local over-the-air channels and those are the ones I need to remap.

I tried to be ingenious and try '$source 2' but that just gave me errors.

Any other ideas?

BTW, I noticed that I never thanked you for a GREAT module. so, THANK YOU!!


----------



## Zirak

Well, if the XX(ant) channels are not in any of the lineups on either tuner, I don't know where they come from, and/or perhaps what the mfs structures look like for dual tuners. I don't have a dual tuners, or know what a setup looks like, other than dual lineup sources. I can only guess, and probably not well.

If you give me access to your tivo, I can take a quick look to see if I can figure anything out.


----------



## tlphipps

Thanks for the offer, but I got it working the way I wanted. I don't know why I didn't think of it before. The local cable companies map those channels to the place I wanted them, so I just re-ran guided setup and told tivo that I received basic cable instead of an antenna. Now everythings in the right place.

Thanks for all your help though.


----------



## Andrel

I am trying to understand the remap module and It seems I am missing something:

-I get the channel lineup by clicking on ChannelMap,
-Listing appears and then click on the station call name,
-change the channel # to what I want, click remap.
-This bring me back to channel listing then I click on commit change on active listing
-It then comes back with a choice of premium/basic and I click on continue(or something like that).
-Then it lists all the changes. This is where I have a problem: I give me a listing of over 100 channels change even though I asked to remap only 1.

It is doing the same if I list then commit change without remapping anything.

I can go like that all night(will move it back and forth). I am using dish national line up that may list a station in more than channel number.

I am doing something wrong ?

Thanks

Andre


----------



## Zirak

This is my best guess at what is going on, it will produce the behavior you describe.

It sounds like you are including lineups that you don't actually receive in the "commit" process. You need to uncheck any lineups that you do not get before comitting.

The same channel can and often will exist in more than one lineup. The most intuitive example of this is a cable provider that has both analog and digital service. The tivo will only use the lineups appropriate to your setup - I.E. Digital only, or Analog only. CNN exists both on digital and analog, but are likely on different channel numbers.

By using more lineups in the commit than you actually "get", you apparently have several channel conflicts across the lineup. When you do the commit with this problem, the module is going to dutifully compare each channel number in each lineup you have selected against what is in the active lineup. If it is different, it will be changed. If you have multiple occurences of CNN with different channel numbers in the lineups you have selected to commit, there will be one (or more!) changes for the "active" CNN each time you press commit.

You need to deselect the lineups that are not part of your service before you commit.

If for some reason, you actually get CNN on multiple channels (strange!), then you will need to skip the commit process, and go back to the "Customize Channels" section in setup, and de-select and reselect your lineup. This does the same thing as commit, except that it clears your "favorites" and resets "channels you receive.'' The entire purpose of "commit" is to prevent reseting these two items.


----------



## Andrel

Sorry again, not sure I understand;



As being on the satellite lineup, I do not have the option to get in "Customize Channels" section in setup, and de-select and reselect my lineup. The choice of the sat lineup is only given at guided setup time (in my case it was National, Local or local with no local(temporary). I remember that when I had a cable provider, I could go in different lineup and back or daily call and it would commit the change(was not using Tivoweb at this time).

When I "commit", I have Basic and Premium. I tried selecting Basic with same result. unless I try with no selection ? 

Does "commit" has any bearing with channel you receive selection ?

FYI, Here My /Headend:

Directory of /Headend starting at ''

Name Type FsId Date Time Size
---- ---- ---- ---- ---- ----
374032 tyDb 374032 07/10/02 06:47 52324
640086 tyDb 640086 07/08/02 11:26 35472
640114 tyDb 640114 07/01/02 19:52 22752
640116 tyDb 640116 06/22/02 19:36 23320
640118 tyDb 640118 06/15/02 17:16 22000
640120 tyDb 640120 06/22/02 19:52 22232
768828 tyDb 768828 07/06/02 02:09 25256
768830 tyDb 768830 07/06/02 02:07 25512

Headend 374032/40307 {
CityPostalCode = 374032/40308
CountyName = SATELLITE
EncryptionKeys = 199801,1,0x199799 199803,1,0x199797 199806,1,0x199792
IndexPath = /Headend/374032 /HeadendTms/ECHOST /HeadendPostalCode/DBS~374
032 /Server/345739
Lineup = 374032/40309 374032/40310
Location = USA
Name = {Dish Network}
PostalCode = DBS
ServerId = 345739
ServerVersion = 214
State = National
TimeZone = 0
TmsHeadendId = ECHOST
Version = 1471

Would it make a difference if I use it directly in the ITCL code ?

I am still running more tests but it is pretty long in between (more than 20 mins between each screen).

Appreciate your help. Thank you.

P.S. I wanted to attach my listing dump and commit but I need to run a few more test before I kind of know if i am full of it or not. My first impression is that if 2 channels # exist in a given lineup ex. WJW is on 897 & 8513, it will relocate both to 8513 regardless if I remapped to 380.


----------



## Zirak

Lineups live at : MFS:Setup:Source[0,1] :Headend:Lineup
The active list lives at: MFS:Setup:Source[0,1?]:Channel

Changing the channel mapping only changes the channel number in the Lineup.

Commiting copies the channel numbers from all the channels in all the selected lineups (one by one) to the same channels in the active list. If a channel appears twice, even across lineups it will be copied twice. The point of the commit is to NOT effect the channels you receive/favorites section, otherwise I would not have bothered. Try committing with all the boxes unchecked, it wont hurt. 

I have never looked at a dual tuner system/satelite system - I don't know what these structures look like on those. Hopefully this will help at least identify where the data is.

The headend you listed looks OK, whatever that means. The real question is what channels are in each of your lineups, and what channels are listed in your active list.

I think I have a little script that will dump the active list, let me check.

I don't think it will make a difference if you run the code outside tivoweb.

I would guess that the FIRST channel that matches in the active list would be changed to the LAST time that channel appeared in a lineup. It might get them both, I would have to look at the code again. (Actually, the channel would change twice, but the last one would be the "effective" change)

20 minutes between screens is amazingly long. That sounds like 2000 channels! Are you a satelite company executive?


----------



## Zirak

This will list the active channels for a source. You might need to edit it and run it for both sources - again, I don't know what the db looks like for your setup...

Even though I wrote it, I won't necessarily CLAIM this code. 

drop the .txt
chmod +x
./listactivechannels


----------



## Zirak

This lists the channels in the lineups. Again, it will need to be modified to deal with more than one source.


----------



## Andrel

I do have a SA model running ppp over serial at 115,200. I might have a bad config somewhere.... Remap 1 channel takes over 10 mins.
I am going to run both scripts. I can feel that the original lineup is pretty much screwed. all stations with 2 channel numbers are showing the same number for the same station. I will post the result.

BTW, I would suggest "edit channel map" window displays 4 digits vice 3.

Thanks again for your help


----------



## Zirak

I don't think the time is related to connection speed, but rather looking through all the channel objects. The html returned can't possibly be big enough to make bandwidth a factor. 

Still, a remap takes 5-10 seconds for me with ~100 channels, and the commit takes about 30 seconds. Scaling these numbers up to 20 minutes would imply an ungodly number of channels.

I can think of no obvious explanation for 20 minutes. How many channels do you have?


----------



## Andrel

Active lineup shows 970. haven't done the listchannel yet. Yesterday, I did the remap and it takes around 7 mins to come back(remap @10 channels and 13 mins when i select ChannelMap to get the listing.

One more question: When we save the Lineup and later Tivo add/delete/move channel from the original lineup, all the remap channel will be lost. Right? If I restore the lineup, how will Tivo/ChannelMap module going to react ? I guess I will see the next time it happens!

Would it also be possible that the remap would be an ascii text list(or something like this) that we could populate with the channels we want to remap? i.e. old to new channel or Callsign to channel ? This would really save time.

I might redo guided setup this weekend to change Dish National to Dish Local. That will really reduce the list.

Thanks!


----------



## Andrel

Talking of the devil, Got a lineup change from Tivo and this moved around 200 channels(I only remap 20). I restored my saved lineup, remap around 200 channels, including all of mine but 4. I saved the restored lineup and the commit change. May take a while but I will understand what is going on!

Oh well I only have to remap 4!


----------



## Zirak

> _Originally posted by Andrel _
> *Talking of the devil, Got a lineup change from Tivo and this moved around 200 channels(I only remap 20). I restored my saved lineup, remap around 200 channels, including all of mine but 4. I saved the restored lineup and the commit change. May take a while but I will understand what is going on!
> 
> Oh well I only have to remap 4! *


Yes, I lineup change from tivo will cause everything to revert back to the way it was. The save/restore buttons are already there to "restore" back to a current known state. This is done via looking for matches of lineup/channel name. If a channel moves from one lineup to another, it will not be restored. If the name changes, it will not be restored.

I suppose the overhead of 900 channels causes significant extra memory/processing time. It sounds like its enough to cause significant swapping, and thus a significant degredation in speed. Pure speculation.

The saved lineup is stored as a tcl program, but it is simple to figure out/edit if that is what you want to do.

It sounds like it is working for you, albeit slowly.

It seems strange that you have such a large number of incorrectly mapped channels. You should take this up with tivo. Most people only have a couple that are incorrectly mapped. All of mine are currently mapped correctly from tivo. I find that the the lineup changes I receive are only off for a couple of days before they get fixed. So far, I have gotten the changes before the cable company implements them.


----------



## Dweller

Is it not possible to remap a Broadcast only lineup?

I was able to remap a basic cable lineup but didnt see an option for over the air antenna lineup.

Did I miss it?


----------



## Zirak

Apparently not. I don't know where "over the air channel lineup" information is stored in the database, as my system isn't setup for such. Its apparently not in the same place as the cable/direct-tv lineups. From the last few posts, it seems like the dish network stuff may somehow be different, but I'm not sure.

If I had a "development" tivo, or someone gives me access to theirs, I would look at it.

Again, quite surprised that over the air stuff would be wrong. Its not like stations change their broadcast channels frequently. Have you tried asking for a fix from tivo?


----------



## Dweller

> _Originally posted by Zirak _
> *Again, quite surprised that over the air stuff would be wrong. Its not like stations change their broadcast channels frequently. Have you tried asking for a fix from tivo? *


You and me both  TiVo couldnt fix it and kindly referred me to manual recording instructions 

Tribune gave me some vague response about a legal dispute, and again couldnt fix it.

My last resort was to spend teh last few days enabling bash, installing XP, enabling PPP, and finally installing Tivoweb and the lineup module to try to fix this.

I am VERY sorry to hear that this isnt going to work for me.

I suppose I will ask pony to provide teh info to you, and then commence holding my breath... seriously doubt he will be willing to help, but IMO if TiVo wont give us teh ability to manually adjust lineups then they should step up to teh plate and help people like you that ARE willing to help us with these issues and support you in any way they can.


----------



## Zirak

> _Originally posted by Dweller _
> *
> I suppose I will ask pony to provide teh info to you, and then commence holding my breath... seriously doubt he will be willing to help, but IMO if TiVo wont give us teh ability to manually adjust lineups then they should step up to teh plate and help people like you that ARE willing to help us with these issues and support you in any way they can. *


I understand the frustration of it not working. But bothering Pony/Tivo to support hacks like this isn't the route to go.


----------



## Zirak

> _Originally posted by Dweller _
> *
> I am VERY sorry to hear that this isnt going to work for me.
> *


A thought - You could configure the input for a local cable company, remap the channels to where they really are, and just set the rest to channels you don't receive.

It may or may not work, depending on whether the cable company provides all the local channels. I think they are required to, by law.


----------



## Dweller

> _Originally posted by Zirak _
> *
> 
> A thought - You could configure the input for a local cable company, remap the channels to where they really are, and just set the rest to channels you don't receive.
> 
> It may or may not work, depending on whether the cable company provides all the local channels. I think they are required to, by law. *


I tried this, but for whatever reason I was not able to recieve the UHF channels in this configuration. Thanks though.

When set to Cable, I get blue screen on 49 and 54. When on antenna I get 49, but no 54, since TiVo doesnt know its there.

And as for bugging pony, I already have. It may not result in any response, but at this point I have tried every single option I have and am desperate. I dont feel I should be paying TiVo for an invalid lineup, and if I cant get it corrected I will have no choice but to shut teh service off.

Thanks again for the idea on the cable thing. I just wish it would work :/


----------



## Zirak

> _Originally posted by Dweller _
> *
> 
> I tried this, but for whatever reason I was not able to recieve the UHF channels in this configuration. Thanks though.
> 
> When set to Cable, I get blue screen on 49 and 54. When on antenna I get 49, but no 54, since TiVo doesnt know its there.
> 
> And as for bugging pony, I already have. It may not result in any response, but at this point I have tried every single option I have and am desperate. I dont feel I should be paying TiVo for an invalid lineup, and if I cant get it corrected I will have no choice but to shut teh service off.
> 
> Thanks again for the idea on the cable thing. I just wish it would work :/ *


Indeed this wont work for UHF channels as they aren't the same as for cable frequencies.


----------



## Dweller

yeah that was my suspicion, but a quick search here was not able to confirm or deny it.

Thanks for letting me know I wasnt crazy


----------



## Zirak

Over the air (antenna) service has no "lineup." The ChannelMap module assumes lineups exist. It modifies those, and combines them into the channel list.

The net effect is that you can not directly remap antenna service using this module.

It is possible to setup using a local cable company's basic service, and then remap the channels using the module. Unfortunately, cable channel frequencies don't map to over the air frequencies for UHF channels. This means channels over channel 13 won't work.

The attached code will change the "source" to be an over the air (antenna) source. If you setup as basic cable, remap the over the air channels and then run this short program, UHF channels will work. This solved Dweller's problem. You must lookup the object id (XXXXX/YYYYY) and provide it as an input. This is easily done using Tivoweb (MFS/setup/source).

Good luck, no warranties.


----------



## Francesco

When I click "info" in TiVoweb, it displays the program info for the original occupant of that channel number, not for the remapped channel. Any ideas?


----------



## bradtem

Zirak, if you are interested in studying the structures of a dual headead system, might I suggest you simply do a guided setup on your TIvo and tell it you have a satellite box in addition to your OTA cable?

As far as I can see this won't hurt anything other than it will now require you to type longer channel numbers or hit enter after doing 1 and 2 digit channel numbers. You can mark all the satellite channels as do-not-receive.

it does mean more downloading while doing this, so after playing with it, understanding the structures and testing software, you may wish to undo it.

Not that you have a special duty to try this to help those of us with two headends, but I thought you might be interested in seeing how it works.

If you have a reverse engineered diagram or description of the internal data structures, mappings between channel numbers, station IDs, TIMS IDs, internal file numbers, headends/sources, lineups etc. I would be interested in seeing that.

My latest curiousity is to wonder if you can convince a Tivo to have two cablesystem head ends, one for OTA cable and the other for a IR controlled satellite box that isn't really cable but uses the listing data of a cable company.

That's because my satellite box is not supported by Tivo, but if I could get the listing data of a Buffalo cable company into it and remap the numbers, the result would be halfway to what I want, which is better than none of the way.

Another tool that would be useful would be a general backup for the entire MFS "source" tree with all the lineup information, so I could save it and restore it if I screw it up playing with it. Anybody written one of those?


----------



## Zirak

> _Originally posted by satguymtl _
> *When I click "info" in TiVoweb, it displays the program info for the original occupant of that channel number, not for the remapped channel. Any ideas? *


Restart Tivoweb - Without looking, I bet tivoweb is caching the channel information on startup. The channelmap module doesn't use/mess with that stuff.


----------



## Francesco

Yup. You are good. Damn good.


----------



## Zirak

> _Originally posted by bradtem _
> *Zirak, if you are interested in studying the structures of a dual headead system, might I suggest you simply do a guided setup on your TIvo and tell it you have a satellite box in addition to your OTA cable?
> *




By now I think I have a pretty good understanding of it.



> _Originally posted by bradtem _
> *
> If you have a reverse engineered diagram or description of the internal data structures, mappings between channel numbers, station IDs, TIMS IDs, internal file numbers, headends/sources, lineups etc. I would be interested in seeing that.
> *




I do have a diagram of sorts, but I don't have a brain scanner so I can put it in an emailable format. 



> _Originally posted by bradtem _
> *
> My latest curiousity is to wonder if you can convince a Tivo to have two cablesystem head ends, one for OTA cable and the other for a IR controlled satellite box that isn't really cable but uses the listing data of a cable company.
> 
> That's because my satellite box is not supported by Tivo, but if I could get the listing data of a Buffalo cable company into it and remap the numbers, the result would be halfway to what I want, which is better than none of the way.
> *




Two cablesystem headends wouldn't be hard. The trick is to get the tivo to download the data for two different cable systems, if that is what you are looking for. Not sure what you mean by OTA cable, unless its just the OTA channel delivered via some apartment complex cable feed, which may remap channels.



> _Originally posted by bradtem _
> *
> Another tool that would be useful would be a general backup for the entire MFS "source" tree with all the lineup information, so I could save it and restore it if I screw it up playing with it. Anybody written one of those? *


The whole MFS tree can be backed up with MFStools.

If you are just worried about the lineup/channel stuff, a guided setup might do the trick, depending on how bad you trashed things.

The channelmap module lets you save and restore the first headend. A simple source change (which you could do) would let you make that work for the second. Don't try to run two copies of the module at the same time.

Nothing here will ADD a channel to headend/lineup/otherwise. Beyond the scope of this module.


----------



## bradtem

If a two cablesystem config wouldn't be hard, then I would be quite interested. I want it to be configured so that I have my regular AT&T cable on the RF (which is what I mean by OTA) inputs, and an echostar satellite box with a western new york (ie. Buffalo area) cable lineup on the SVideo inputs. Then I will remap the buffalo lineup to match the channels coming from my satellite box since many of them can be found in the Buffalo lineup, or so I am told (Anamertics Cable of Amherst seems to have most of the Canadian stations)

I know MFStools can back up the tree, but can I do it on my Tivo? I thought that was for use under regular linux. Is there an MFS Tools for the Tivo itself? My goal would be to backup not the OS or other things, but just the MFS tree with my configuration in it, so that if I screw it up, I can get it back with the shell.

I tried your channelmap script, the one from this thread, and it aborted on my 3.0 Tivo with two headends. It was acting on the "first" headend, which oddly is my satellite headend (currently configured as DirecTv even though I don't have that) and not my RF headend.


----------



## Zirak

> _Originally posted by bradtem _
> *If a two cablesystem config wouldn't be hard, then I would be quite interested. I want it to be configured so that I have my regular AT&T cable on the RF (which is what I mean by OTA) inputs, and an echostar satellite box with a western new york (ie. Buffalo area) cable lineup on the SVideo inputs. Then I will remap the buffalo lineup to match the channels coming from my satellite box since many of them can be found in the Buffalo lineup, or so I am told (Anamertics Cable of Amherst seems to have most of the Canadian stations)
> *




Changing the input type to cable isn't hard. The small script posted earlier does that, except it changes it to antenna not cable. However, this won't make the tivo have a clue about what channels are on the other feed, or get the schedule information for those channels.



> _Originally posted by bradtem _
> *
> I know MFStools can back up the tree, but can I do it on my Tivo? I thought that was for use under regular linux. Is there an MFS Tools for the Tivo itself? My goal would be to backup not the OS or other things, but just the MFS tree with my configuration in it, so that if I screw it up, I can get it back with the shell.
> *




No one has pursued that strategy as far as I am aware. Easier just to restore to drive and pursue more interesting things.



> _Originally posted by bradtem _
> *
> I tried your channelmap script, the one from this thread, and it aborted on my 3.0 Tivo with two headends. It was acting on the "first" headend, which oddly is my satellite headend (currently configured as DirecTv even though I don't have that) and not my RF headend. *


It will always act on the first headend. You have to change the code to make it use the second one, but the change is trivial.

What error did it give when it aborted? I haven't heard about a blowup problem with this in some time.


----------



## bradtem

Which is "the small script earlier?" 

As for the blowup, I was remapping about 5 channels and it took place when I did a commit. As I have rempaped them other ways with other TCL scripts, it is not easy to duplicate but I will let you know.

Right now when you add a 2nd headend in the Tivo, you are given the option of picking a satellite provider from their short list. I guess I should hunt further for that script, but it seems to be able to do this I would need some way of telling it "Still act like I have a satellite box of type Echostar 10010, but use listing data like I ahve the headend of Anametrics Cable of Amherst NY"

Then remap the Anametrics lineup (which will be sub-100 channels) to use channels in the above 100 set that the Expressvu satellite box actually uses.

If you have advice on how to do that, many users of Canadian signals will thank you.


----------



## Zirak

> _Originally posted by bradtem _
> *Which is "the small script earlier?"
> *




channelsetuptoantenna.tcl



> _Originally posted by bradtem _
> *
> As for the blowup, I was remapping about 5 channels and it took place when I did a commit. As I have rempaped them other ways with other TCL scripts, it is not easy to duplicate but I will let you know.
> *




I took a quick look, and think I know the problem. At approximately line 125 change

set channels [dbobj $source 0 get Channel]

to

set channels [dbobj [lindex $source 0] get Channel]

That should fix it, let me know. This is relatively new code.



> _Originally posted by bradtem _
> *
> Right now when you add a 2nd headend in the Tivo, you are given the option of picking a satellite provider from their short list. I guess I should hunt further for that script, but it seems to be able to do this I would need some way of telling it "Still act like I have a satellite box of type Echostar 10010, but use listing data like I ahve the headend of Anametrics Cable of Amherst NY"
> 
> Then remap the Anametrics lineup (which will be sub-100 channels) to use channels in the above 100 set that the Expressvu satellite box actually uses.
> 
> If you have advice on how to do that, many users of Canadian signals will thank you. *


No real advice here. It doesn't sound like changing the second source to cable is really what you want to do.


----------



## bradtem

Well, I'm new to learning how this database works so I am still looking for where to start.

If you don't think changing the 2nd source to cable is what I want, what do you think I want? It's true that I don't want it to think the 2nd source is a cable company or cable box. It really is a satellite box. What I want it to think is that the 2nd source has the _lineup_ of a particular cable company in the Tribune Database, but still know it's a satellite box when it comes to controlling it.

The first soruce would remain my regular AT&T cable with it's ordinary lineup coming in the RF port.

No ideas on how to do this? Where to look to figure out how to do this?

As for your patch, I will try that. I've been a bit scared since after I ran your program (and did some other lineup change programs) my Tivo has had 2 strange random crashes of the UI process and inexplicable and unduplicatable times, within infinite loops complaining about promotion codes.


----------



## Zirak

The only reasonable thing I can suggest is setting the second source to a satelite provider that has all the channels you want and remapping them.

It may be possible by spending a good deal of time playing trial and error in MFS. I don't know enough about satellite stuff inside or outside to tivo to guide you intelligently.

There is no script that I am aware of that will do what you are looking to do. If you are going to make it work, you will need to get your hands dirty.

I can't imagine how the tivoweb or the channelmap script would have caused the other problems you are describing. Very unlikely.


----------



## bradtem

Right, but since I have no documentation on the form of the MFS datbase, I have no idea how to set the second source. There is no satellite provicer that has the channels I want that Tivo supports -- that is the whole point. Tivo does support the channels through some cable providers, but no U.S. satellite provider supplies Canadian channels.

I'm not up to speed enough to do trial and error in the MFS, not without a safety net to restore what I screw up. That's why I was hoping for whatever docs people have figured out. I guess I will keep hunting for such docs.

Thanks.


----------



## Zirak

A new version of the ChannelMap module is available.

The previous versions are incompatible with tivoweb v.1.9.4 beta and higher.

Download the new version from the tivoweb website here:

ChannelMap


----------



## finster869

Zirak -

I am using the new version of channelmap from the tivoweb website along with beta 4. I cannot get the restore function to work. If I remap a channel and save it, tivoweb reports that it has been saved. If I open that saved file, I see the script has written itself. However, when I go to restore it, it says that is restoring and may take a minute, but then nothing changes. I have tried rebooting tivo, so it isn't a caching problem. Has anybody else had this problem? Any ideas?


----------



## Zirak

After the restore, do you commit changes to the active channel list?


----------



## finster869

When I go to apply the changes, it gives a message saying that there appears to be no changes.

I have opened the channelmapscript.tcl script that it saves in /var/hack/tivoweb-tcl, and it appears as though the script saved all of the channels properly. The channels in the script are definitely different than those in the tivo database. For some reason, when I go to restore it, it isn't working. 

I also tried removing the channelmapscript.tcl file all together from the /var/hack/tivoweb-tcl directory to see if I would receive a "file not found" or some type of error message, but I don't.

It is almost as though the module is not finding the channelmapscript.tcl file, or not running it. Is there any way to run the channelmapscript.tcl file outside of tivoweb as means of troubleshooting?


----------



## Zirak

> _Originally posted by finster869 _
> *When I go to apply the changes, it gives a message saying that there appears to be no changes.
> *


This almost certainly means that the channelmapscript didn't run properly. As another found earlier in this thread, the channelmap module MUST be named "ChannelMap.itcl" -- capitalization is important.



> _Originally posted by finster869 _
> *
> I also tried removing the channelmapscript.tcl file all together from the /var/hack/tivoweb-tcl directory to see if I would receive a "file not found" or some type of error message, but I don't.
> *


If I recall, I think the code assumes the script is there, tries to run it, and catches but ignores any errors. Sub-optimal for sure.



> _Originally posted by finster869 _
> *
> It is almost as though the module is not finding the channelmapscript.tcl file, or not running it. Is there any way to run the channelmapscript.tcl file outside of tivoweb as means of troubleshooting? *


It can be run manually, however when it is run from tivoweb, the output is written to /tmp/CMS.out. That primarily, and the tivoweb log file secondarily, are the places to start to find the problem.


----------



## JonJon

So I have a problem that this module may or may not fix. I have messed with it some but don't quite understand the channel numbering/organization, and I don't want to get it too wrong. 

I have Extended Basic. Recently Tivo dropped HBO from Extended Basic but it is still under Digital Premium. My tuner still receives HBO just fine but Tivo does not recognize it as a channel anymore. If I manually enter the channel it says to be announced or something in the guide info. Can I add HBO back to my Extended Basic lineup so that I can still have my Sopranos fix? I don't want to have to set it up with Digital premium and remap all the channels I get and cancel the channels I don't.

Thanks
Jon


SA Sony with no Cable box.


----------



## finster869

Thanks Zirak. I have it working now. Your guess was right, my capitalization was off with "ChannelMap.itcl". It now works great. Thanks for all of your efforts in writing the script and in helping me to get it to work.


----------



## Zirak

> _Originally posted by JonJon _
> *I don't want to have to set it up with Digital premium and remap all the channels I get and cancel the channels I don't.
> *


Creating a channel is beyond the scope of the module. Setting up with digital premium is the only option, at least in this context. Alternatively, you can still setup manual recordings on the channel.


----------



## Zirak

> _Originally posted by finster869 _
> *Thanks Zirak. I have it working now. Your guess was right, my capitalization was off with "ChannelMap.itcl". It now works great. Thanks for all of your efforts in writing the script and in helping me to get it to work. *


I guess I should change the script creation to understand what you called the module. Still, this would break if you changed the module name after saving the current map. Making it run completely inside tivoweb would fix the problem, but there are advantages to having it be a standalone script.


----------



## kevinallein

Hi Zirak, you wrote:

*********************************************************
The attached code will change the "source" to be an over the air (antenna) source. If you setup as basic cable, remap the over the air channels and then run this short program, UHF channels will work. This solved Dweller's problem. You must lookup the object id (XXXXX/YYYYY) and provide it as an input. This is easily done using Tivoweb (MFS/setup/source). 
*********************************************************
This code is no longer in the thread. I have the same problem as the other person before, that I receive my locals over antenna (and Tivo thinks on different channels) and everything else through DirecTV. Could you please send me that code ?

Thanks, Kevin


----------



## Zirak

> _Originally posted by kevinallein _
> *
> This code is no longer in the thread. I have the same problem as the other person before, that I receive my locals over antenna (and Tivo thinks on different channels) and everything else through DirecTV. Could you please send me that code ?
> 
> Thanks, Kevin *


Not sure why you don't see it, its attached to the post you are quoting.


----------



## Francesco

OK, I'm stumped:

Added Dish Network to my cable package in order to get the new "locals" that are available, along with the superstations that direcTV will likely never get.

Recently I got the silly message that "a lineup change has occurred," but with holiday crunches only got around to checking things today. Now my ChannelMap no longer shows the availability of "extended basic" where most of my cable channels reside, and many of the channels that show up on the TiVo do not show up on listchan...

Any ideas???


----------



## Zirak

No idea, seems to be related the setting up which "service" you have. Manipulating the channels that exist in the lineup is beyond the scope of this module. The module will only remap the channel numbers for the channels/lineups that the tivo thinks you have.


----------



## Francesco

Hmmm... worked fine before, and gave me the choice of Basic, Extended, Digital, Premium, etc. Now the module only shows Basic and Premium, while TiVo shows the availability of Extended Basic as well. 

Nothing has changed on the TiVo; I even re-ran GS with all the same settings as before, and still have Extended Basic selected; the module does not even list the channels that are available on Extended -- basically showing only the networks on cable, and everything else on satellite...


----------



## Zirak

Note that if you have multiple headends, channelmap will only look at the first one. You can change the code to look at the second headend if you wish, its trivial. BUT, you can not run two copies of the module simultaneously, one for each headend. That will not work, period.


----------



## Francesco

Ahh! I get it. I will search this thread for the code fix -- I only need the module to change the cable headend, not satellite, which is what it apparently sees.

Thanks again!

Edit: Yep, that did it. Now it sees cable and I can remap the cable Extended Basic channels...


----------



## Francesco

Welp, I made the change to get the correct headend shown, and brought up my saved file. When I tried to commit the change to the active channels list, I get this error:



Code:


INTERNAL SERVER ERROR
--cut here--
action_BuildActiveChannels '/' 'set "L1" "1";set "L2" "1";set "BuildActiveChannels" "Commit Changes";'
no such object: dbobj43963 dbobj43964
    while executing
"dbobj $source get Channel"
    ("uplevel" body line 4)
    invoked from within
"uplevel $body"
    invoked from within
"transaction {uplevel $body}"
    (procedure "RetryTransaction" line 5)
    invoked from within
"RetryTransaction {
			set setup [db $db open /Setup]
			set source [dbobj $setup get Source]
			set channels [dbobj $source get Channel]
			set nchann..."
    (procedure "BuildActiveChannelList" line 20)
    invoked from within
"BuildActiveChannelList"
    (procedure "::action_BuildActiveChannels" line 30)
    invoked from within
"::action_$action $chan $part $env"
    ("eval" body line 1)
    invoked from within
"eval {::action_$action $chan $part $env}"
--cut here--


----------



## Francesco

Zirak, just to clarify: 

I loaded both fresh copies of TiVoweb b5 (I needed to get to that anyway) and the module. The module loads the already corrected listchan from the TiVo, but it can never get past that error to actually commit the changes to the active channel list. On screen, the TiVo still has them in the wrong places.

Could it be possible that the module is still trying to change sub-lineups from the satellite headend (0) and is not finding these channels there?


----------



## Zirak

> _Originally posted by satguymtl _
> *Zirak, just to clarify:
> 
> I loaded both fresh copies of TiVoweb b5 (I needed to get to that anyway) and the module. The module loads the already corrected listchan from the TiVo, but it can never get past that error to actually commit the changes to the active channel list. On screen, the TiVo still has them in the wrong places.
> *




Makes sense, if the commit failed.



> *
> 
> Could it be possible that the module is still trying to change sub-lineups from the satellite headend (0) and is not finding these channels there? *


Even if it was doing that, it shouldn't cause an error, just no channels to change.



> *
> 
> "RetryTransaction {
> set setup [db $db open /Setup]
> set source [dbobj $setup get Source]
> set channels [dbobj $source get Channel]
> set nchann..."
> (procedure "BuildActiveChannelList" line 20)
> invoked from within
> *




This looks like old code, it doesn't match what I have on my tivo.

A new ChannelMap module was _required_ with tivoweb b4. Lightn graciously hosts 3rd party modules on the tivoweb site, download it from there, and reapply the lineup changes. I don't recall if the description of the code to change to switch headends which is described earlier in this thread (I think), includes changes for the commit code or not. That is, I don't recall if those instruction predate the inclusion of the commit code in the module. (Commit can also be done from the remote, selecting which lineup you receive, but you lose favorites/channels you receive that way.)


----------



## Francesco

Hmmm... I loaded the module fresh from Lightn's site (thanks, TiVoweb Team!), and changed three headend objects to "1". The rest of TiVoweb b5 works fine, but I can't get around this.

This is the error I get now:


Code:


Applying change for CBFT 4 (Was ) object 

INTERNAL SERVER ERROR
--cut here--
action_BuildActiveChannels '/' 'set "L1" "on";set "L2" "on";set "BuildActiveChannels" "Commit Changes";'
can't read "firstid": no such variable
    while executing
"db $db openidconstruction $firstid $secondid"
    ("uplevel" body line 3)
    invoked from within
"uplevel $body"
    invoked from within
"transaction {uplevel $body}"
    (procedure "RetryTransaction" line 5)
    invoked from within
"RetryTransaction {
		scan $resid {%[0-9]%[/]%[0-9-]} firstid slash secondid
		set chanobj [db $db openidconstruction $firstid $secondid]
		set channum..."
    (procedure "changenum" line 9)
    invoked from within
"changenum $object $channelnumber "Applying""
    (procedure "::action_BuildActiveChannels" line 47)
    invoked from within
"::action_$action $chan $part $env"
    ("eval" body line 1)
    invoked from within
"eval {::action_$action $chan $part $env}"
--cut here--


----------



## Zirak

This will happen if you attempt to apply a change for a channel that doesn't exist in your active lineup. I don't know why that would (practically) ever happen. If you configure the tivo for "Basic" and then remap/apply changes to "Extended Basic" this would occur. It still shouldn't crash that is clearly a bug - but it doesn't make sense to try doing that to start with.

Specifically, CBFT is not in your active channels, located at MFS - Setup/Source/Channel. If there are multiple sources (MFS/Setup/Source), that would cause a problem. I didn't try to guess how MFS is setup in that situation.

If you correctly change all the source references from source 0 to source 1, I don't think this problem will occur. (Note that there is one in BuildActiveChannelList, which is coming into play here) 

This is speculation, as I have never actually looked at a multiple source MFS setup.


----------



## Francesco

Let me know if you have the inclination & time to look at it, and I will send you whatever files & logs you need! 

Just FYI, I reloaded TW & the module fresh again, made the headend change, and still get the error... but after successive reboots of the TiVo, the changes seem to have been applied in spite of the error... Go figure!

Edit: Dang! Wouldn't you know? All along I've been missing that one "source" within BuildActiveChannelList! Just changed it and no longer get the error!!!

Thanks again,


----------



## Zirak

A hacker always likes hearing that you find joy, and its not _their_ code. Whether they admit it or not.  I would welcome you to the tivolution, but you pre-date me.


----------



## grenex

My cable co changed the NAME of my lineup today. And now I can not remap channels! The script is bombing out on me!

When i click on a station to change the channel number, it get the following error:

Edit Channel Map for a given Sub-lineup

In Lineup: Premium (A) Change HBO2 To Channel: 77 Return To This Page 

INTERNAL SERVER ERROR
action_remapchan '/222831/10190-77' ''
invalid command name "html_form_checkbox"
while executing
"html_form_checkbox "stayonpage" """
(procedure "::action_remapchan" line 245)
invoked from within
"::action_$action $chan $part $env"
("eval" body line 1)
invoked from within
"eval {::action_$action $chan $part $env}"

I have rebooted the tivo, cleaned up the channel backups that i created in the past, but nothing seems to work! What gives!? I never had this problem until now.


----------



## Zirak

Sounds like incompatible versions of the module and tivoweb. Get the latest versions of both from the tivoweb site. A new module and old tivoweb will certainly cause this error.

Note - I *HAVE NOT* looked at module compatibility with the 1.9.4 final release. I'm inclined to think it would be ok, but, it may or may not be compatible.


----------



## grenex

Yes...i loaded final version of 1.9.4 of tivoweb, and all is well now.

Thanks!


----------



## bazzaj

Hi I have recently move to a cable area in the UK. However, my terestrial channels i.e. BBC1, BBC2, ITV, Channel 4, Channel 5 which are normally provided by the aerial onto of the house are proided through the analogue cable box and just arn't encoded. The TIVO is mapping the channels incorrectly for my area. i.e. BBC1 is on RF channel 23, the Tivo is using RF channel 22. What I'm looking to try and do is change BBC1 from RF 22 to RF 23. These channel come up with (AER) next to them in the channel listing as opposed to (SAT). I've uploaded the latest version of channelremap to tivo, but I can only change channel that are preceded with (SAT), the (AER) ones don't come up.
Is this possible? If not is there another workaround?

Thanks,

Barry.


----------



## Zirak

Antenna channels are apparently stored differently than cable/sat channels. I haven't ever looked at a tivo setup for an antenna connection, so I don't know how thats stored, and consequently the module won't do anything with them.

Someone else worked around a similar problem which might work for you. Details are in the thread.


----------



## grytpype

I don't understand what the point of this module is. Why would you want to remap channel numbers? I wish I could use tivoweb to change "received" and "favorite" channels, that would be useful.


----------



## Zirak

If Tivo thinks A&E is on channel 20 on your system, but its really on channel 21, this module will change the assignment. If Tivo has all your channels correctly mapped, you don't need the module. The mapping is sometimes just wrong, sometimes the cable company changes where each channel is and the Tivo updates it days in advance or days late, sometimes apartment cable systems have completely different channel assignments, at least one person here remodulates channels from the cable assigned location to somewhere else, etc. 

My map is correct 99% of the time, usually the problem only occurs on the rare occasion that the cable company does a wholesale change and the tivo gets updated too early or too late. It prevents me from recording Steel Magnolias on TBS when I was trying to record Kelly's Heros on AMC.


----------



## Francesco




----------



## philhu

hi

I am running this against 1.9.4 tivoweb

Channels in the headend are showing correctly

Channels added with add-channel.tcl and add-station.tcl are NOT showing!

Any ideas why?


----------



## Zirak

When you first setup your tivo, giving it your zipcode and identifying your cable provider, the tivo goes out and pulls down the possible lineups and stores them in MFS. (Setup/Source/Headend/Lineup) "Lineup"

You then tell the tivo what service package you have (analog basic, analog extended basic, digital basic, digital extended basic, etc.) The tivo then uses the downloaded lineup information to build the list of channels you have. (Setup/Source/Channel) "Active Channel list"

When you change a channel number assignment with the ChannelMap module, it modifys the channel number in the lineup information. When you commit the changes, it goes through the channels in the lineup information, and changes the number in the corresponding channel object in the active channel list, based on the long and short channel name. 

I would assume that the add-channel hack is incomplete in that it is adding a channel in the active channel list only, leaving the channel "missing" in the lineup information. 

I haven't looked at add-channel, but I think this is likely the problem, and would cause exactly what you are seeing.

The solution is to either fix add-channel to add a channel in both places, or rewrite the channelmap module to make changes directly in the active channel list.


----------



## philhu

that is exactly what add-channel does, it adds it to the active list, NOT to the lineup.

How hard would it be to add it to a lineup??


----------



## Zirak

I haven't looked at add-channel, but I don't think the modification would be hard. The lineup object is almost exactly the same as the active channel object - it only has one extra static entry. add-channel is already adding an entry to a list, it would just need to do the same thing in another place with the slightly different object.

To do it right, you would need to add a little code to be able to specify which lineup to insert the channel into.

It shouldn't be hard.


----------



## bdaalex

After much difficulty just unzipping this module (IE was corrupting it)I have it working. I now have two questions:

first, (I know this is probably answered somewhere, but after hours of searching, I give up) I would like to know how to back up my changes so that if something is modified by Tivo, I can revert.

for my second question I should give a little background. Live in Bermuda where the cable company displays our only 3 local channels (NBC, CBS, ABC), but also displays locals from scattered cities. We have a second NBC from Detroit, Fox from Rochester (???), WB from NYC, etc. I have set up my lineup telling it that I live in Detroit, simply because NBC is my favorite channel. However, Detroit does not have National Geographic and a few other channels I like. It also uses multiple lineup types (digital, analog, premium, etc) which complicates the remap process. What I would like to do, and I have the distinct impression this will be impossible) is to specify no lineup, but pick from every channel Tivo can cover. That way, I could search through for those exact varying locals that I recieve. 

At all possible? If not, is there any other way to grab stations from different cities that you could think of.

thanks,
Alex


----------



## Zirak

Congrats on getting gzip to work.

On the main ChannelMap page there is a button to save the current channel map, and another to restore the channel map from the saved state.

It appears that you want to create a custom lineup where you can pick and choose which channels you receive. The module does not provide that functionality. It only allows you to change the channel number for stations in a lineup which you receive.


----------



## bdaalex

did not realize backing up was so easy, that's great to know, thanks.

as for the picking and choosing out of multiple lineups, I realize that this module lacks that funtionality. However, I was wondering if it would even be possible if I worked with a programming adept friend.

perhaps I'll start a new thread as it is not specifically related to this module.


----------



## Francesco

Unfortunately I can never get the backup to stick.

I used the module to rearrange the cable channels in a shared cable/Dish Net lineup. And every time Dish makes a lineup change (well, TiVo makes one), it wipes my changes. This happens three or four times a week. I've never been able to successfully restore the backup channelmap.

Thankfully, I only use this setup to record special soccer, cricket and sumo matches, and stuff on local channels I don't receive on DirecTV... so I manually remap every so often.


----------



## Zirak

I can't really tell why a restore won't work. The backup is saved as a tcl script in the root tivoweb directory called "ChannelMapScript.tcl" When you press the restore button, it just runs that script, with the output going to /tmp/CMS.out

Perhaps that information will help you figure out what is causing the problem. Works fine over here.


----------



## Francesco

OK, Zirak, I just made all my changes manually again, committed them and saved the active channels. I went into ChannelMapScript.tcl and verified that the changes are there. We'll see if I can make them stick next time TiVo sends a lineup change down.

Is there a simple way to script for TiVo to "listen" for a lineup change and automatically revert it back to the saved list?


----------



## Zirak

By my definition of simple, the key word, I would say no. That isn't to say that it would be hard.

You could test the save/restore functionality by changing a single channel and committing the change, then do the restore and again commit the change.


----------



## Francesco

I'll test that. Thanks again for a very useful utility! I'm pretty sure it's user-error, here... hehehe.


----------



## Francesco

OK, to keep it simple, I changed the first channel on the list (A&E) from 39 to 42 and committed the change. I did *not* save the active lineup to the script. I then verified that 42 now said A&E. I returned to ChannelMap, and clicked Restore and confirmed. The "It s Done - Commit..." page lists A&E as 42, not the saved 39 as anticipated... WTH am I doing wrong???

Edit to add: I joe'd into the script and it still shows A&E as 39 and now I'm confused.


----------



## Francesco

Add: when I commit the change (even though the list says A&E is 42), it says there was nothing to change...


----------



## Zirak

A couple of things.

1) You didn't explictly say that you hit the commit button after the restore and confirm. It IS necessary to do that again. Running the restore script is functionally equivalent to doing the remapping manually, short of hitting the Commit button.

2) I'm not sure what page you are referring to in "page lists A&E as 42." 

The sequence of events should be something like the following, the object names will obviously be different.

1) Make change to A&E manually, on return to the main channel map page there will be a message at the top " A&E (2452/6959) remapped to channel 42" This has changes the channel number in the lineup object, and will be reflected on this page.

2) You then commit, and choose the appropriate lineups to use in the process. A page displaying the individual changes will appear, with messages along the lines of "Applying change for AMC 42 (Was 39) object 2252/2505" This has made the change in the active channel list.

3) Go back to the main page and press the "Restore from saved button." It will tell you that its done, and you still need to commit. This will change all the channel numbers in all the lineups that exist on your tivo to however they were saved. The exact actions show up in the file /tmp/CMS.out. Not done yet.

4) Press the commit button again. It will again have you select the lineups to use in performing the commit. You will again see a page with all the changes along the lines of "Applying change for A&E 39 (Was 42) object 2252/2505" Done.

If there are problems, let me know which step failed, as well as posting the appropriate lines from the CMS.out file.


----------



## Zirak

> _Originally posted by Francesco _
> *Add: when I commit the change (even though the list says A&E is 42), it says there was nothing to change... *


This would seem to imply that the restore button isn't actually running the script, or something is failing therein. Look to CMS.out.


----------



## Francesco

Well, I jumped the gun again, and figured there was a problem with channelmap.itcl, so I downloaded from lightn.org again, changed the headend setting from 0 to 1 on the three lines, and loaded it into /modules. I restarted TiVoweb, opened Channelmap, and tried to change A&E back to 39. When I try to commit, I get a long sleep then this error:


Code:


INTERNAL SERVER ERROR
--cut here--
action_BuildActiveChannels '/' 'set "L1" "on";set "L2" "on";set "BuildActiveChannels" "Commit Changes";'
can't read "firstid": no such variable
    while executing
"db $db openidconstruction $firstid $secondid"
    ("uplevel" body line 3)
    invoked from within
"uplevel $body"
    invoked from within
"transaction {uplevel $body}"
    (procedure "RetryTransaction" line 5)
    invoked from within
"RetryTransaction {
		scan $resid {%[0-9]%[/]%[0-9-]} firstid slash secondid
		set chanobj [db $db openidconstruction $firstid $secondid]
		set channum..."
    (procedure "changenum" line 9)
    invoked from within
"changenum $object $channelnumber "Applying""
    (procedure "::action_BuildActiveChannels" line 47)
    invoked from within
"::action_$action $chan $part $env"
    ("eval" body line 1)
    invoked from within
"eval {::action_$action $chan $part $env}"
--cut here--

But rechecking Listchan shows that the change stuck. Go figure.

FWIW, yes, I followed all the exact steps you detail.

I will try the test again after work, and look at CMS.out...

Thanks


----------



## TiVoJedi

Maybe I missed this, but I have a scenario that I wonder can be fixed or not.

I use antenna+satellite and recently discovered an antenna channel (WB)72 miles away that tunes in acceptably. Since my satellite dish has a rain fade problem, I would hate to miss my favorite shows during a rain and could use the antenna station as a backup. The only problem is TiVo has no data for this distant WB station and re-running the guided setup doesn't help. I got a response from TiVo stating they were sorry I could not incorporate that station in my lineup for my area. Is there a way I could do it with a channel remap module in tivoweb?


----------



## Zirak

> *
> can't read "firstid": no such variable
> *




It apparently committed the change on A&E before it hit this error. resid in the RetryTransaction must be something unexpected.

*



Is there a way I could do it with a channel remap module in tivoweb?

Click to expand...

*The module doesn't add channels, just changes the map for what is already there.


----------



## cresny

I just installed ChannelMap and noticed that I have a Lineup (Cable Ready) that doesn't show up on the available Lineups.

Does anyone know if I can make this lineup active (without changing source from cable box)?


----------



## bdaalex

While I was able to "Save Current Channel State" the first time I made changes, I am no longer able after making a few more. Tivoweb returns the following error:

_Script has been written to -NOWHERE! error opening /tivoweb/ChannelMapScript.tcl _

My suspicion is that the file system is RO and thus, the ChannelMapScript.itcl file cannot be over written. However, I want to be sure before I do anything.

Does anyone know if that is the case? If not, what?

thanks,
Alex


----------



## Zirak

> _Originally posted by bdaalex _
> *
> 
> My suspicion is that the file system is RO and thus, the ChannelMapScript.itcl file cannot be over written. However, I want to be sure before I do anything.
> *


Bingo. Its has nothing to do with overwriting as you can't create OR modify a file on an RO filesystem. It must have been mounted RW when you made the first changes.


----------



## bdaalex

I'll remount and then retry.

i don't suppose you can do that through Tivoweb. I have to use telenet?

thanks for the help


----------



## bdaalex

A new question. Given that this module is able to back up the mappings and restore them on request, I was wondering if that could be automated. In other words, is there a way that I can make my TIVO autamatically restore my modified lineup every night at, say, 7pm, so that it is ready for primetime. 

Or, would this be better tackled in windows. A program that opened IE and clicked the right buttons, daily?

I have recently experienced my first revert to the actual lineup and it was frustrating. Havn't tried the restore yet as it is actually at a friends house... my cable is still out from a hurricane 2 months ago.


----------



## Zirak

It could be automated by installing cron and making a stand alone tcl program by pulling the relevant pieces out of the module. You would probably need to hard code which lineups you use. 

It could also be done from an automated web client that sends the right commands, but I would never make something that actually opens a browser and clicks buttons. Thats kinda insane.


----------



## bdaalex

I consulted a far more programming proficient friend and created a script that will do that later of what you suggested (will share it with anyone interested once I test it for a bit). I am just wondering when the best time to schedule it is. There are two choices:

one, late afternoon, right before any recording would begin.

second, right after Tivo might make any changes. Does anyone know when Tivo does this? For example, do they always make changes at midnight or is it random?

suggestions?


----------



## Zirak

Random times.

If you have gone that far, why not take it just a wee bit further. You can determine if a lineup change has occurred by looking for the date and "A lineup change has occurred" here: http://tivo/listmail.

If a lineup change has occurred today, and you haven't already remapped the channels today, then remap the channels. Then you could run it however frequently you wish, something like once an hour. (Yes, you need to be careful about "today" when its shortly after midnight.)


----------



## Francesco

OK, got a lineup change, and tried to restore again, no go.

Tried to run the script from BASH and a problem glared out at me - apparently the script is case-sensitive and my FTP program changes ChannelMap.itcl to channelmap.itcl... Renamed it and now it is able to restore from saved; the channels show up correctly before the "commit" step. However, when I try to commit now, I get this error:


Code:


                                       Applying change for TVGOS 2 (Was ) object 

INTERNAL SERVER ERROR
--cut here--
action_BuildActiveChannels '/' 'set "L1" "on";set "L2" "on";set "BuildActiveChannels" "Commit Changes";'
can't read "firstid": no such variable
    while executing
"db $db openidconstruction $firstid $secondid"
    ("uplevel" body line 3)
    invoked from within
"uplevel $body"
    invoked from within
"transaction {uplevel $body}"
    (procedure "RetryTransaction" line 5)
    invoked from within
"RetryTransaction {
		scan $resid {%[0-9]%[/]%[0-9-]} firstid slash secondid
		set chanobj [db $db openidconstruction $firstid $secondid]
		set channum..."
    (procedure "changenum" line 9)
    invoked from within
"changenum $object $channelnumber "Applying""
    (procedure "::action_BuildActiveChannels" line 47)
    invoked from within
"::action_$action $chan $part $env"
    ("eval" body line 1)
    invoked from within
"eval {::action_$action $chan $part $env}"
--cut here--

and of course the restored changes don't commit to the active channels list. How can this module work for everyone else??


----------



## Zirak

It looks like TVGOS is in one of the lineups that you told it to use in the remapping, but it isn't currently in your active channel list. They also have to "match" both in the name ("A & E Network") and Callsign ("A&E").

So, it would appear that TVGOS either isn't in the active lineup, or the name and callsign don't match.

I suppose thats a bug, but it would seem that the conditions that trigger it should never happen.

You can hack around it by adding an additional check that "object" != "" in the conditional immediately preceding the "Applying Change" message.


----------



## mitkraft

I can't figure out how to add my OTA HD channels that my HD Dtv receiver receives. Basically I have normal DirecTV w/ Locals, but the box also tunes OTA HD channels. The major problem is that TIVO won't recognize non satellite channels as part of my lineup unless I use Satellite + Broadcast. However then it tries to tune to the actual channel for the HD using its internal tuner (i.e. 35 instead of 2-1).

I guess there are two issues to be tackled here.

1. Can this module remap a channel to the STB that TiVo thinks is broadcast OTA?

2. Can this module map a channel to an STB channel with a "-" in it (2-1, 2-2, 8-1 etc..)?

Any help would be greatly appreciated. I've never had to use remap before because I only recently got rid of cable (yaay me!) 

Thanks,

Michael


----------



## Snoopy

> _Originally posted by finster869 _
> *Zirak -
> 
> I am using the new version of channelmap from the tivoweb website along with beta 4. I cannot get the restore function to work. If I remap a channel and save it, tivoweb reports that it has been saved. If I open that saved file, I see the script has written itself. However, when I go to restore it, it says that is restoring and may take a minute, but then nothing changes. I have tried rebooting tivo, so it isn't a caching problem. Has anybody else had this problem? Any ideas? *


I am currently using TiVoWebPlus which I have not found on this board yet. Please advise. Channel Map looks like it could be still be a usefull module.


----------



## 1equals0

hi,
this thread seems to be the most active on channel mapping, so please forgive if this is not the appropriate thread.

will this code still work in version 3.0 standalone series 1 tivo? it worked great under 2.0/2.5 versions:



Code:


source /tvlib/tcl/tv/mfslib.tcl
proc getchannel { db ch } {
set obj [db $db openid 363859]
foreach l [dbobj $obj get Lineup] {
foreach c [dbobj $l get Channel] {
if {$ch == [dbobj $c get Number] } {
return $c
set res [dbobj $c fsid]/[dbobj $c subobjid]
}
}
}
return $res
} 
proc changenum {oldnum newnum} {
set db [dbopen]
RetryTransaction {
dbobj [getchannel $db $oldnum] set Number $newnum
}
dbclose $db
}

i was able to batch renumber multiple channels at once by creating a text file and running it like:

changenum 6 606
changenum 7 607
changenum 8 608
changenum 9 609
.
.
.

but i am afraid to run this changenum script under 3.0 for fear it might break something now. 
so has the database structure remained the same such that it will still work under 3.0?

i havent installed the channel remap tivoweb module you are discussing here. 
does it work and will that allow me to do batch channel reorders?
thank you


----------



## Zirak

Yes, it works on 3.0.


----------



## 1equals0

Wow, thank you Zirak.

I ended up installing tivoweb+ and used your channelmap module.
That is quite a functional module. I am very impressed. Thanks for developing it. 
It works very well, and it is especially convenient that you can set it to remain on the channel change page and when you update a channel, it auto increments to the next channel in this to change. Very nice. And the saving of your channel map data to a file is an exceptional touch.

One question, after making massive channel remappings, I went in the old fashioned way thru the Tivo and toggled my Lineup from Extended Basic to Basic and back to Extended Basic again, to load the new mappings.

When I tried to do the reload through your interface, it brought up a screen with all 6 lineups, each with a checkbox checked. Well, this scared me because I was expecting mutally exclusive radio buttons with only 1 allowable lineup choice, since the tivo only allows you to select 1 lineup at a time, and I would have picked, I suppose, my desired Extended Basic lineup. So i guess what I am asking is what was I supposed to do on that screen, unselect all other lineups? Is it possible to have channels in your channel listings ala carte from multiple lineups?


----------



## Zirak

The "old fashioned way" does the same thing.

When you select the check boxes on the commit page, you need to determine which sub lineups are used in your "tivo lineup." A likely case is if your cable system has both analog and digital cable as options. In this case you will likely see sub-lineup options for "Basic," "Extended Basic," "Premium," "Pay Per View," "Digital Basic," "Digital Extended Basic," "Digital Premium," and "Digital Pay Per View." 

If you have analog cable you want to select the first 4 sub-lineups, as basic includes ONLY the basic channels, Extended Basic ONLY the extended basic channels (not basic, premium or PPV) and so on. If you have digital cable you would similarly need to select the last 4.

If you are unsure, you can sort the main channel map page by the lineup name which may help you determine what is there. Similarly, you can look at the drop downs on the remap page to see what channels are in which sub-lineups. You will need to engage slight use of the brain to pick the right sub-lineups, as the same channel will likely exist in mutually exclusive sub-lineups.

"A la carte" is not an option since a) by design you need to base your lineup on something tivo knows about, and b) the only possible need for an a la carte system that I can think of probably be to support some form of service theft. That is not the purpose of the module. Generally you should get tivo to fix broken lineups to avoid headaches. The module is most useful when the cable company and tivo are out of sync for short periods of time. Although, I'm sure there are many other legitimate uses.


----------



## 1equals0

zirak,
thank you. i am just curious why you didnt you roll up the choices as to allow the user to pick one and only one lineup, similar to the tivo gui. i assume it was for the sake of easier programming, no disrepect intended? i had mentioned a la carte only because it seemed that was your design intention by allowing multiple selections.


----------



## 1equals0

this is strange.
after a reboot, all my remapped channels were gone and back to their original state. i had a new "message from tivo" stating a Channel Lineup Change had occurred. in that note, each channel that i successfully remapped had a line showing it was moved back to its original channel.

very interesting, why would that happen? luckily i had saved the Channel Map so all was good i thought. 

but performing a Reload seems to work. it says:
"It is Done - Commit the changes to make them Active".

But the channel lineup listed on the web page is in its original state. Its not actually loading the ChannelMapScript.tcl file when I press "Restore Channel Map from Saved" button and then the "Yes I'm Positive" button. I just validated that the channel map file looks good... i think i am going crazy there must be something i am missing here...might u have any advice please?

ok..just tested some more. tivoweb log file show
"Loading channel map from backup - Individual Transaction will not appear here."

is it possible to execute the ChannelMapScript.tcl without going through the web interface?


----------



## 1equals0

problem solved.

ran ChannelMapScript.tcl script from the shell and got

bash-2.02# ./ChannelMapScript.tcl 
couldn't read file "/var/hack/tivowebplus/modules/ChannelMap.itcl": no such file or directory

so i go there and i have no idea how, but this file was now called:
"channelmap.itcl" no caps....not sure how that happened...but all looks good.

but i am left wondering why the channels reverting after reboot or was that simply a coincidence that tivo remapped my channels back to what they were last night?


----------



## rbird

I am trying to use this module and am experiencing the exact same symptoms as in Post #25 in this thread. I am only trying to remap 4 channels, but many more are actually being changed (because some are duplicated in the lineup). In fact, the ones I'm trying to change are duplicated as well, and end up not being changed the way I want them!

Is there any way we can modify this script to just change the channels that have been selected instead of going through the entire list and changing everything?

In case anyone is curious, I'm trying to use this lineup to remap the listings from my local channels on Dish (which I don't subscribe to) to the HD/digital channel numbers (that I can access through my Dish receiver). Unfortunately this script in its current form doesn't work because the channels appear both on their OTA numbers AND in the 7000 range.

Bob


----------



## rbird

Interestingly enough, running the commit script again _restored_ the incorrectly changed channels! And I had the foresight to change the other occurance of the channels I did want to change this time around, so now everything is exactly the way I want it...

...until tomorrow when I get a lineup change based on a ticket I have in to a lineup specialist. 

One thing I noticed is that the duplicate channels (in this case, many times one is a spanish version with the same name, or the same channel located on a different satellite) have the same name and station object number but a different _channel object_ number. Maybe this tidbit would be enough to come up with a fix (that at the very least would cut down the time required for remapping on Dish systems).

Bob


----------



## Zirak

It sounds like you ran the commit without de-selecting the sublineups which are not applicable to your setup. When a channel exists in multiple sublineups, as they frequently do, the code will change the channel mapping each time it encounters a channel in a sublineup, leaving you with the channel number associated with the channel in the last sublineup where it exists.

I.E. If you select both "extended basic" and "digital extended basic" you will almost certainly have duplicate channels. The channel map will then reflect however the channel is set in the last sublineup processed. The point being, you shouldn't select both of these sublineups for the commit. This is an example for cable, I assume something similar happens with Dish, specifically, I would guess OTA and the "7000" channels are in different sublineups. 

You can sort the channels by sublineup (or channel name, number, channel object, or station object) on the main channelmap page. Just click on the column header.


----------



## rbird

Well for Dish, there are only two sublineups, basic and premium. Both with a TON of channels within them. Channels repeat within the lineup, so deselecting isn't really possible in this case. Local channels are within the basic sublineup because Tivo has a separate headend for each city, plus a "national" headend for those who don't have local channels available.

It's definitely not the ideal way to handle things, IMHO. It's caused problems before (not hack-related), and is probably a large factor in Tivo's tech support costs.

Bob


----------



## Zirak

If you are making changes in only one sublineup, you could commit chosing only that sublineup to get what you want. Alternatively, you could commit twice, each time selecting only one sublineup. Commit with the sublineup you want to take precedence *last*.

Alternatively, you could just change the mapping on all occurrences of a given channel, no matter what lineup it exists in.


----------



## wauters

Why can't the script just change the channels you change instead of the whole script? 

Example - I remap 4 channels, the script should just remap those 4 without going through the whole channel list.


----------



## wauters

Or is there a way to manually change the channels one at a time?


----------



## Zirak

It would certainly be possible. However, the script was designed to maintain the correct mappings in _both_ places they are stored on the tivo. When you change the channel numbers in the lineups, only what _you_ change will change. The commit process copies any differences from the lineups you select to the active channel list. (Same thing that happens when you select your service package from the tivo interface.)

It still doesn't make sense to me that there would be duplicate channels in sub-lineups that are not mutually exclusive by service package. It would seem to me that you must be able to identify a set of sub-lineups that has all the channels you get without duplicates, or the tivo would have the same problem in selecting your service package.

The problem may be that the sub-lineups needed exist on multiple headends. This module doesn't support multiple headends, although it wouldn't be too hard to add that support. Unfortunately, I don't have multiple headends and could not test the code. (Not to mention a lack of inclination to start messing with the code again)


----------



## bdaalex

hello all,

been using this for over a year to map Detroit's lineup to mine here in Bermuda (we have almost entirely US stations) and it works great. Two questions:

First, my cable company finally went digital and I have 40 new channels to map. Zirak, I love this module, so no offenense, but I find the process rather slow to modify channels one by one. Is there any reason I cannot just copy channelmap.tcl to my computer, modify all the channels in textpad and then put it back? I'm right in thinking that channelmap.tcl lists all channels, not only the ones I have modified, correct?

Second, are the new channel mappings in channelmap.tcl specific to the provider that you tell Tivo you use, for me, detroit. Basically, I arbitrarily chose Detroit because my bermuda provider actually has Detroit's NBC. However, I would rather pick a provider somewhere along the canadian border as we have a few canadian channels that are offered in say, Buffalo, but not detroit. If I change providers, will this module look at channelmap.tcl and still put NBC on 6 (where my provider has it) regardless of where Detroit/buffalo have it, or will I have to redo this whole thing? I suspect and hope that this is generic to Tivo's unique ID for a channel and provider is irrelevent.

i feel like that might be complicated, so if I made no sense, let me know.

thanks,
Alex


----------



## Zirak

> _Originally posted by bdaalex _
> *
> Is there any reason I cannot just copy channelmap.tcl to my computer, modify all the channels in textpad and then put it back? I'm right in thinking that channelmap.tcl lists all channels, not only the ones I have modified, correct?
> *



Yes, you can just edit the saved script, however, be aware that linux end of lines are different than unix end of lines, so you will need to convert the file back to the linux format is you use textpad. The script has all the channels, not just the ones you modified.


> _Originally posted by bdaalex _
> *
> Second, are the new channel mappings in channelmap.tcl specific to the provider that you tell Tivo you use, for me, detroit.
> *



Yes.


> _Originally posted by bdaalex _
> *
> Basically, I arbitrarily chose Detroit because my bermuda provider actually has Detroit's NBC. However, I would rather pick a provider somewhere along the canadian border as we have a few canadian channels that are offered in say, Buffalo, but not detroit. If I change providers, will this module look at channelmap.tcl and still put NBC on 6 (where my provider has it) regardless of where Detroit/buffalo have it, or will I have to redo this whole thing?
> *



To be honest, I don't recall, its been a couple of years since I wrote it. I don't remember if the code looks for the channel name in the lineup, or if it just uses channel object saved in the script. If you redo the lineup, the channel objects will change. The script wouldn't work if it is relying on the channel object as opposed to the name. The channel object is not a unique tivo identifier, it is better described as the location of the channel in the database, which will be different on every tivo, even if they are the exact same model, software version etc, etc. I do remember that the commit process is not based on channel object, but on matching channel short and long names.


> _Originally posted by bdaalex _
> *
> I suspect and hope that this is generic to Tivo's unique ID for a channel and provider is irrelevent.
> *



Nope. Provider is irrelevant, but the location of the channel object in the database _may_ not be. I would have to go look at the code, but I suspect it relies on the channel object location.


----------



## grenex

It would be cool to have an updated version of this script to do multiple channels at one time rather then one at a time as the last poster suggested.....


----------



## bdaalex

> _Originally posted by Zirak _
> *
> Yes, you can just edit the saved script, however, be aware that linux end of lines are different than unix end of lines, so you will need to convert the file back to the linux format is you use textpad. The script has all the channels, not just the ones you modified.
> *


all done with the changes, but textpad only allows me to save as UNIX, not Linux. How do I do that? Thing is, I think that I have used textpad before...



> _Originally posted by Zirak _
> *
> To be honest, I don't recall, its been a couple of years since I wrote it. I don't remember if the code looks for the channel name in the lineup, or if it just uses channel object saved in the script. If you redo the lineup, the channel objects will change. The script wouldn't work if it is relying on the channel object as opposed to the name. The channel object is not a unique tivo identifier, it is better described as the location of the channel in the database, which will be different on every tivo, even if they are the exact same model, software version etc, etc. I do remember that the commit process is not based on channel object, but on matching channel short and long names.
> *


while I understand that the locals will be different as NBC can be WDIV or whatever, the others must be the same right? "HBO" or "DSC" are going to mean HBO and Discovery everywhere I would think. On a sidenote, is there a transaltion of some of the less obvious abbreviations?



> _Originally posted by Zirak _
> *
> Nope. Provider is irrelevant, but the location of the channel object in the database may not be. I would have to go look at the code, but I suspect it relies on the channel object location. *


I guess I am just still confused, there is no reference to the Tivo's file system other than the abbreviations I mentioned above. Thus, except for the locals, I just dont get why channlemap.tcl would be different for different providers.

The only difference that I can see is that there would be different channels. However, the ones that are the same should remain the same in the script, right? Oh wait, by "location" do you mean lineup? Now I can see where the problem would arrise.

thanks for the help.

as for the idea of doing multiple channels at once in table structure, it would be very nice, but altering this script works fine too.


----------



## Zirak

> _Originally posted by grenex _
> *It would be cool to have an updated version of this script to do multiple channels at one time rather then one at a time as the last poster suggested.....
> 
> *


This module was mostly a learning exercise, as it was the first thing I did with tivo hacking. I'm not planning any updates. If you find the web interface too cumbersome, edit the saved config file instead.



> _Originally posted by bdaalex _
> *all done with the changes, but textpad only allows me to save as UNIX, not Linux. How do I do that? Thing is, I think that I have used textpad before...
> *


Unix and linux should be the same.



> _Originally posted by bdaalex _*
> while I understand that the locals will be different as NBC can be WDIV or whatever, the others must be the same right? "HBO" or "DSC" are going to mean HBO and Discovery everywhere I would think. On a sidenote, is there a transaltion of some of the less obvious abbreviations?
> 
> I guess I am just still confused, there is no reference to the Tivo's file system other than the abbreviations I mentioned above. Thus, except for the locals, I just dont get why channlemap.tcl would be different for different providers.
> *




I looked at the saved script. Since it doesn't pass in the object number, that isn't what is used. It apparently matches on channel name and lineup name. If a channel changes which lineup its in, you will need to change that too.



> _Originally posted by bdaalex _
> *
> The only difference that I can see is that there would be different channels. However, the ones that are the same should remain the same in the script, right? Oh wait, by "location" do you mean lineup? Now I can see where the problem would arrise.
> *


No, I meant the object numbers. The things that appear on the main channelmap page, that look like (1234/56). But, you are correct in the assertion that the lineup needs to be the same too.



> _Originally posted by bdaalex _
> *
> as for the idea of doing multiple channels at once in table structure, it would be very nice, but altering this script works fine too. *


I really don't see the need. Do it once, save the configuration, and changes are then just one or two channels at a time. For most purposes, you should contact tivo to fix the map, although I understand your situation is different.


----------



## bdaalex

thanks,

I think I have it all. If I end up switching providers, I'll just redo the saved script, seams the simplest thing.

I agree that there is little need for the table structure given the programming involved. changing the text file is easy.


----------



## jberman

Zirak -

I just wanted to thank you for this great module. I FINALLY was able to remap a couple of incorrect channels in my cable lineup! Your module worked great. I really appreciate your hard work!! 

Jesse


----------



## sfaron

Apologies if this is a stupid question. Where can I find this file and any others necessary to implement this channel re-mapping?

thanks...
sfa


----------



## falc122727

I just successfully loaded and used this module today. Took a while for me to figure things out. Hope this helps:

The file is here channelmap.itcl.gz

Right click and hit save target as. Rename the file channelmap.itcl.gz to ChannelMap.itcl - the Caps are important. FTP ChannelMap.itcl to your TivoWeb modules directory (mine was /var/local/tivoweb-tcl/modules. Open Tivoweb+ and hit restart. After Tivoweb+ restarts, you should see ChannelMap as an option.


----------



## rbird

In case anyone is still following this topic, I have found a MUCH easier way to modify channel lineups. If you drop me a PM, I will send you a link (I don't think the link can be posted here - it's not the "other site", but a site overseas).

I don't want to sound like I am dismissing Zirak's effort. His hack is great, but it just wasn't what I needed and it didn't work well with huge lineups like Dish Network. It just so happens that in this particular case, some things can be done much more easily outside TivoWeb.

Bob

[Edit - sorry, I'm no longer offering any type of support for this topic. It's long out of date, I no longer even have the links to the site I mention above, and I'm not familar with you guys' new-fangled software versions, as my Tivos have been stuck at version 3.0 for years. Sorry to those who have been PMing me on the subject]


----------



## Boboli

I have read thru almost the whole thread and I am a little buggy-eyed.

Will this module allow me to remap ANT channels and tell the TIVO that the source for these channels is the Sat STB and not the ANT?


B


----------



## nux

Hi Zirak

Fantastic module. Compliments to your coding. Without this module, I'd be unable to command my STB with tivo. The web interface has a nice design but didnt always map all of the channels for me. The tcl scritp is great though. I understand that it goes thorugh all channels, not just the ones changed but it doesnt take that long at all. 

I know this quiestion has raised its littl ehead before but Is there a way around tivo chaging the line up every time it updates ??

Perhaps we can stop tivo from changing the line up somehow ? Or perhaps there is a way to execute the tcl script automatically after an update ? or daily ?


----------



## beastman

FAO rbird (or anyone else on here) - can you send me the link you refer to above that gives a quicker way to do this?
thanks


----------



## falc122727

beastman said:


> FAO rbird (or anyone else on here) - can you send me the link you refer to above that gives a quicker way to do this?
> thanks


Here's the link.

Rbird is correct. This is a much easier and faster way to re-map channels, especially if you set up a script. You can run this script everytime TiVo "undoes" your mappings after a daily call. I used to run a script that remapped 20 channels and it completed in seconds! I'm sure it could also be set to run automatically through cron.


----------



## beastman

thanks for that falc122727 - so to create the script you need to have a linux machine?
That's a bummer as I don't have one to play with. 
Also that cron thing looks a beast to set up!
I guess I might be stuck to doing it manually with tivoweb. With over 200 channels its going to be a mare. 
If only there was another way.


----------



## falc122727

beastman said:


> to create the script you need to have a linux machine?.


No. You can create the script in telnet through the Joe editor, or even in wordpad/notepad on your PC. If you do it on a PC make sure you ftp it to TiVo as a binary.



beastman said:


> that cron thing looks a beast to set up.


You don't have to use cron. I used to run mine manually after TiVo changed my line-up back (usually 2-3 times a week). Or you could pull you network/phone cable during the week and force a call once a week on a Saturday for example. Then you would only have to run the script once a week.


----------



## nux

What is this "cron". Does it enable automated and timed scripts ? 

Thanks for posting this link, However I have found that the tivoweb module is quicker that this new method. Im sure that once a script is prepared, it will be great to run. Setting up the script, however is offputting. I have 280 channels and navigating through tivoweb can to get the correct number for each would be painfull. Channel map module script may take a while to execute but setting it up is a cinch. 

Fo anyone looking to do the same on a windows machine, use this multi language editor....oops cant post link till after 5 posts  do a google search for "SciTE"
been using it for years, its great.  

Can somebody please provide a link to this croni module. I'd like to execute my channel map.tcl after an update.


----------



## lightguy48

Is there any way to look at the local DTV channel translation table on a HR10-250. I believe there is an error but I need some way to see what 6-1 is being translated to, it should be telling the OTA receiver to look at 9-1 but I can't prove it.

Thanks!


----------



## Markman07

Yes I am starting to get desperate. Mid December Directv changed something and screwed up my local fox OTA mapping. Now I have two KXLT 47.1 One is 47.1 KXLT-DT and one is 47.1 KXLTDT. The one with programming guide doesn't pull in the signal. THe one without any guide data pulls in the signal. Of course Directv isn't getting it fixed too fast. So Fox on my HR10-250 is all manual recording. I was hoping maybe this module would work and be what I could use to fix it myself. Anyone having any input? (I love 4 year old threads hehehe)


----------



## lightguy48

The engineering department at the TV station and they in turn contacted D* and Tribune Media service and the two of them got the issue resolved. My issue was due to the fact that all 2-6 channels are going away. Since 2-6 are going away our local channel 6 brands their HD channel as 9. TMS' database which is used for the local OTA HD database in the HR10-250 was telling it to look in the wrong place.

Anyway, I would try to have a chat with the local TV station's director of engineering and see if they might lend a sympathetic ear to the problem.

I also had a problem with two different stations where their PSIP generator would lock up. Most the time other TV's wouldn't notice it (apparently they hold the last setting received) but the HR10-250 needs a steady stream of PSIP information, otherwise it won't lock on.

Hope this helps some.


----------



## toohool

Could this be used on a TivoHD to provide the QAM channel mapping that people are clamoring for over here?
www .tivocommunity. com/tivo-vb/showthread.php?t=362736


----------



## scbebu

I realize this is a pretty old thread but I haven't had any luck searching the internet for a good link to the channel map module. Any help from anyone would be appreciated. Thanks


----------



## davidblackledge

scbebu said:


> I realize this is a pretty old thread but I haven't had any luck searching the internet for a good link to the channel map module. Any help from anyone would be appreciated. Thanks


Never doubt the glory of the wayback machine!
http://web.archive.org/web/20101116153019/http://tivo.lightn.org/


----------

