Superb quality and spec AB-Com PULSe 4K SE. Crazy offer! Only £129! FREE UK DELIVERY! 4K UHD, Enigma 2, Multiboot 4 images & more!...
Superb quality and spec AB-Com PULSe 4K Rev II Twin Satellite tuner only £179! FREE UK DELIVERY! 4K UHD, Enigma 2, SATA HDD facility, Multiboot 4 images & more!...

Alternatives to CrossEPG for New Zealand

The Epgrefresh plugin works but I would like to test the Zapper. I cant find the path to update the provider info. Any tips?

For UK Sky EPG I just have a daily timer that runs at 6am for 15 minutes to record the IEPG channel. The recording destination is the trash folder so that the recording is instantly deleted. This populates my EPG. I put my box into deep standby overnight so this timer wakes up the box and when the recording is finished goes into standby. A power timer then kicks in where if the box is in standby for 10 minutes it is switched to deep standby.

iepg_a.webpiepg_b.webp

You would have to modify the timer to record from the channel from which you obtain the epg
 
Last edited:
For UK Sky EPG I just have a daily timer that runs at 6am for 15 minutes to record the IEPG channel. The recording destination is the trash folder so that the recording is instantly deleted. This populates my EPG. I put my box into deep standby overnight so this timer wakes up the box and when the recording is finished goes into standby. A power timer then kicks in where if the box is in standby for 10 minutes it is switched to deep standby.

View attachment 62690View attachment 62691

You would have to modify the timer to record from the channel from which you obtain the epg

Why wouldn't you use the epgrefresh or Opentv Zapper plugins?
 
Why wouldn't you use the epgrefresh or Opentv Zapper plugins?

Because I wasn't sure that they would operate from deep standby.

A few times a year I'm away from home for a two or three week period and the only time my box would be switched on (into standby) would be when a record timer kicked in. I also have a fair number of autotimers that search the epg to set the timers. If I'm not at home my box is configured to go back into deep standby soon after a recording finishes.

I already had a few power timers.
One puts the box into standby at 30 minutes past midnight, one puts the box into standby if I haven't touched the remote for 2 hours and a third puts the box into deep standby if the box is in standby for 10 minutes (all can be manually overridden or automatically delayed if a recording is taking place)
 
The only EPG database changes from V7 to V8 should be the LOAD string check change and also the 8bit to 16bit type change for the source type.

Im on the wine.. so drunken copy/paste assumptions below!
Why buf[0] = 0x01? NOWNEXT=1, would assume V8 is buf[0] = 0x00 buf[1] = 0x00 here?

https://github.com/E2OpenPlugins/e2...3546d/src/enigma2/crossepg_dbconverter.c#L256

const char *header = "UNFINISHED_V8";

https://github.com/E2OpenPlugins/e2...3546d/src/enigma2/crossepg_dbconverter.c#L337

fwrite ("ENIGMA_EPG_V8", 13, 1, fd);

https://github.com/E2OpenPlugins/e2.../src/enigma2/crossepg_dbconverter.c#L191-L210

Code:
		buf[0] = 0x01;
		buf[1] = 0x00;
		buf[2] = length ;
		buf[3] = (event_id >> 8) & 0xff;
		buf[4] = event_id & 0xff;
		buf[5] = (start_mjd >> 8) & 0xff;
		buf[6] = start_mjd & 0xff;
		buf[7] = toBCD (start_time.tm_hour);
		buf[8] = toBCD (start_time.tm_min);
		buf[9] = toBCD (start_time.tm_sec);
		buf[10] = toBCD (title->length / (60*60));
		buf[11] = toBCD ((title->length / 60) % 60);
		buf[12] = toBCD (title->length % 60);
		for (i=0; i<crcs_count; i++)
		{
			memcpy (buf+13+(i*4), &crcs[i], 4);
		}
So I added this change, but unfortunately on the reload whether I use the epg patch or crossepgImportEPGv21 patch in epgcache to reload it does not work. The 1st method creates an epg.dat that epgcache refuses to read (message:-epg file has incorrect byte order.. dont read it) and the latter crashes badly in eEPGCache::crossepgImportEPGv21 trying to read the created db - it obviously passes the 1st checks but then trying to process the data it crashes.
Hard to tell whether the data is corrupt or the database format is incorrect or both.
 
I've just started using OpenTV epg as it's stated cross epg does not work in python3 but it seems to have very limited options as to when the downdload should start. I have a fixed 28.2 dish and a motorised and OpenTV usually just moves the dish to 28.2 to start the download but I have no control as to when this happens. Could a 'start time' be added and a 'once a day' option and maybe 'in standby only'?
 
I've just started using OpenTV epg as it's stated cross epg does not work in python3 but it seems to have very limited options as to when the downdload should start. I have a fixed 28.2 dish and a motorised and OpenTV usually just moves the dish to 28.2 to start the download but I have no control as to when this happens. Could a 'start time' be added and a 'once a day' option and maybe 'in standby only'?
A download will happen 3 minutes after a reboot if a tuner is available. If not you can force it via the blue button menu. Apart from that a download happens every several hours depending on how you have it configured. It was a conscious decision not to have a specific download timer.

Please explain exactly why you would need this. What problem are you trying to solve?
 
I have set it to download every 12 hours but I go to a channel on say 30.0W and find the dish is at 28.2 because it's done a download. It takes a while to move back! Maybe return to previous sat would be one option?
 
If you leave the stb on a channel on 30W whe you are not using it (or other satellite on the motorised dish) then the fixed dish will be used for updating epg data (as long as that tuner is free).
 
Motors are always crap for zapping. How many tuners do you have? Maybe disable 28.2E on the motorised tuner.
 
I have 2 tuners (Solo2). I could do what you suggest but a lot of messing about if I want to record 2 things at once. Surely an option to download every day at 3am or something would solve the problem or as I said return to previous sat position?
 
I have 2 tuners (Solo2). I could do what you suggest but a lot of messing about if I want to record 2 things at once. Surely an option to download every day at 3am or something would solve the problem or as I said return to previous sat position?
Then use EPGRefresh. This was supposed to be super simple with zero setup required.
 
I have tried that in the past and can't remember exactly why but I thought it was rubbish to put it mildly lol. Might give it another go.
 
I have tried that in the past and can't remember exactly why but I thought it was rubbish to put it mildly lol. Might give it another go.
I agree EPGRefesh is not the most intuitive. I wrote the OpenTvZapper because there were so many questions about setting up EPGRefresh to do this download.
 
So I added this change, but unfortunately on the reload whether I use the epg patch or crossepgImportEPGv21 patch in epgcache to reload it does not work. The 1st method creates an epg.dat that epgcache refuses to read (message:-epg file has incorrect byte order.. dont read it) and the latter crashes badly in eEPGCache::crossepgImportEPGv21 trying to read the created db - it obviously passes the 1st checks but then trying to process the data it crashes.
Hard to tell whether the data is corrupt or the database format is incorrect or both.

I think the patch to update crossepg dbconverter to ENIGMA_EPG_V8 looks to be missing incrementing FROM 2 TO 3 the buf length for _malloc at the beginning and also the buf length for fwrite at the end.

Code:
diff --git a/src/enigma2/crossepg_dbconverter.c b/src/enigma2/crossepg_dbconverter.c
index 46c0f43..f54a18f 100644
--- a/src/enigma2/crossepg_dbconverter.c
+++ b/src/enigma2/crossepg_dbconverter.c
@@ -191,25 +191,26 @@ static void write_titles (epgdb_channel_t *channel, FILE *fd)
 		uint16_t event_id = events_count;
 		uint16_t start_mjd = title->mjd;
 		length = 10 + (crcs_count * 4);
-		buf = _malloc (length + 2);
+		buf = _malloc (length + 3);
 		buf[0] = 0x01;
-		buf[1] = length ;
-		buf[2] = (event_id >> 8) & 0xff;
-		buf[3] = event_id & 0xff;
-		buf[4] = (start_mjd >> 8) & 0xff;
-		buf[5] = start_mjd & 0xff;
-		buf[6] = toBCD (start_time.tm_hour);
-		buf[7] = toBCD (start_time.tm_min);
-		buf[8] = toBCD (start_time.tm_sec);
-		buf[9] = toBCD (title->length / (60*60));
-		buf[10] = toBCD ((title->length / 60) % 60);
-		buf[11] = toBCD (title->length % 60);
+		buf[1] = 0x00; //ENIGMA_EPG_V8
+		buf[2] = length;
+		buf[3] = (event_id >> 8) & 0xff;
+		buf[4] = event_id & 0xff;
+		buf[5] = (start_mjd >> 8) & 0xff;
+		buf[6] = start_mjd & 0xff;
+		buf[7] = toBCD (start_time.tm_hour);
+		buf[8] = toBCD (start_time.tm_min);
+		buf[9] = toBCD (start_time.tm_sec);
+		buf[10] = toBCD (title->length / (60*60));
+		buf[11] = toBCD ((title->length / 60) % 60);
+		buf[12] = toBCD (title->length % 60);
 		for (i=0; i<crcs_count; i++)
 		{
-			memcpy (buf+12+(i*4), &crcs[i], 4);
+			memcpy (buf+13+(i*4), &crcs[i], 4);
 		}
 		
-		fwrite (buf, length+2, 1, fd);
+		fwrite (buf, length+3, 1, fd);
 		_free (buf);
 		
 		title = title->next;
@@ -253,7 +254,7 @@ static void write_epgdat ()
 	
 	unsigned int magic = 0x98765432;
 	fwrite (&magic, sizeof (int), 1, fd);
-	const char *header = "UNFINISHED_V7";
+	const char *header = "UNFINISHED_V8";
 	fwrite (header, 13, 1, fd);
 	fwrite (&ccount, sizeof (int), 1, fd); 		// write the exact number at the end
 		
@@ -334,7 +335,7 @@ static void write_epgdat ()
 	/* sync data on disk and mark epg.dat as a good epg */
 	fsync (fileno (fd));
 	fseek (fd, sizeof (int), SEEK_SET);
-	fwrite ("ENIGMA_EPG_V7", 13, 1, fd);
+	fwrite ("ENIGMA_EPG_V8", 13, 1, fd);
 
 write_end:
 	if (fd) fclose (fd);

i think something like this may fix it?
Code:
		events_count++;
		uint16_t event_id = events_count;
		uint16_t start_mjd = title->mjd;
		length = 10 + (crcs_count * 4);
		buf = _malloc (length + 3);
		buf[0] = 0x01;
		buf[1] = 0x00; //ENIGMA_EPG_V8
		buf[2] = length;
		buf[3] = (event_id >> 8) & 0xff;
		buf[4] = event_id & 0xff;
		buf[5] = (start_mjd >> 8) & 0xff;
		buf[6] = start_mjd & 0xff;
		buf[7] = toBCD (start_time.tm_hour);
		buf[8] = toBCD (start_time.tm_min);
		buf[9] = toBCD (start_time.tm_sec);
		buf[10] = toBCD (title->length / (60*60));
		buf[11] = toBCD ((title->length / 60) % 60);
		buf[12] = toBCD (title->length % 60);
		for (i=0; i<crcs_count; i++)
		{
			memcpy (buf+13+(i*4), &crcs[i], 4);
		}
		
		fwrite (buf, length+3, 1, fd);
		_free (buf);
 
Having left it for longer full epg now available. Thanks Huevos.

I'm interested to know how you got this working.
I've just upgraded to OpenVix 6, not realising that CrossEPG would not work.
I've tried EPGRefresh, even leaving it on a 12519 channel overnight and all I ever get is full 7 day Freeview EPG and now/next for Sky.
Cheers
 
I'm interested to know how you got this working.
I've just upgraded to OpenVix 6, not realising that CrossEPG would not work.
I've tried EPGRefresh, even leaving it on a 12519 channel overnight and all I ever get is full 7 day Freeview EPG and now/next for Sky.
Cheers

I believe a working version of CrossEPG was to be available to download from version 6.0.003. Can't check as gone back to 5.4.016 for now.
 
I'm interested to know how you got this working.
I've just upgraded to OpenVix 6, not realising that CrossEPG would not work.
I've tried EPGRefresh, even leaving it on a 12519 channel overnight and all I ever get is full 7 day Freeview EPG and now/next for Sky.
Cheers

So Crossepg is now working in python3 and is in the plugins downloads.
 
I only looked under extensions, not system plugins.
I'll give it a shot now.
 

OpenViX Feeds Status

Back
Top