Yeah there would be some potholes for sure. For example if I have another app like the HDHR native app and tune a channel you wouldnt want that included in Channelwatch. That could be mitigated by getting a list of clients via api on the channels server and if the IP address matched a known client then query it (not even sure if the server has an api to list all clients).
Unfortunately nothing, It would be much easier if the client could inform the server that it was watching something directly from the HDHR.
Sometimes the counter of active streams can take between 10 seconds to 45 seconds after notifications, i suggest to refresh the page, if its a persistent issue - let me know.
@chDVRuser - After reviewing these logs, I don't see any sources identified in your event streams. Unfortunately, this is where ChannelWatch has some limitations. The app tries to extract source information from these activity events, but in some cases, Channels DVR doesn't provide complete source details in the event stream.
Are you able to see the source within the activity tab of Channels?
Most of the time, the activity tab should show the same or similar information as what appears in the event stream. If the source is missing there too, this might explain why ChannelWatch can't display it.
This can happen due to a combination of factors - like differences between home streaming vs remote streaming, or various device configurations. Since I can't modify how Channels DVR reports these activities, ChannelWatch is limited by what information it can extract from the events.
Regarding your issue with notifications re-occurring every 5 minutes - can you update to v0.7 and confirm if you're still having this issue? The latest version includes some fixes that might address this problem.
activity tab mimics what you see in the event stream.
It doesn't display the source (other than channel number).
For example below with bold highlights
{"Type":"activities.set","Name":"7-ch204-dANY-ip192.168.1.96","Value":"Watching ch204 from iPhone (Remux Starting: 22s @ 1.06x (30.77fps)): strength=96% quality=100% symbol=100% rate=2.2Mb/sec buf=0% drop=0%"}
ch204 is channel 204 dANY is any device source containing channel 204
Do you have an example you tested where ChannelWatch can see the device source?
I thought maybe you queried /devices to determine which device source the streaming channel number came from.
Channels DVR log does display the device source
2025/05/01 15:49:47.514379 [M3U] stream timestamps: TCMWest: start_at=2025-05-01T15:39:32-07:00 end_at=2025-05-01T15:49:30-07:00 live_delay=11.100377614s
2025/05/01 15:49:47.514522 [TNR] Opened connection to M3U-TCMWest for ch5007 TCM West-64312
2025/05/01 15:49:47.514589 [HLS] Starting live stream for channel 5007 from 192.168.1.8
2025/05/01 15:49:48.358845 [HLS] Probed live stream in 843.864461ms: h264 1280x720 progressive 5344598bps
2025/05/01 15:49:48.432662 [HLS] Session ch5007-dANY-ip192.168.1.8 started in 918.006857ms
@chDVRuser - Thank you for sharing those additional logs. You've hit on something interesting here that I've encountered during my previous testing.
I considered querying the /devices endpoint to match channels to sources, but this creates problems when the same channel number exists in multiple sources - it would be impossible to know which one is actually being used for the current stream.
The challenge is that logs like [TNR] Opened connection to M3U-TCMWest don't appear every single time. A reliable and consistent log is needed to calculate the source every-time.
Here are some of the examples that ChannelWatch uses to determine the source
Example 1 - M3U source:
{"Type":"activities.set","Name":"7-ch1001-stream-M3U-HDHR","Value":"Watching ch1001 Discovery from Living Room (192.168.1.10)"}
Example 2 - TVE (TV Everywhere) source:
{"Type":"activities.set","Name":"7-ch503-stream-TVE-XFINITY","Value":"Watching ch503 ESPN from Bedroom Tablet (192.168.1.25)"}
Example 3 - Tuner source with ID:
{"Type":"activities.set","Name":"7-ch7-stream-ABC123DE","Value":"Watching ch7 ABC from Kitchen TV (192.168.1.15)"}
Example 4 - Another M3U source format:
{"Type":"activities.set","Name":"7-ch230-stream-M3U-LocalCable","Value":"Watching ch230 from iPhone (Transcoder Running at 9mbps)"}
Example 5 - TV Everywhere with provider:
{"Type":"activities.set","Name":"7-ch512-stream-TVE-DirecTV_Stream","Value":"Watching ch512 HBO from Fire TV (192.168.1.50)"}
I really appreciate your detailed feedback and logs - this helps me understand exactly what's happening in your setup. If you have any other ideas for how we might be able to capture this source information more reliably, I'm all ears! These kinds of insights from users like you are incredibly valuable for making ChannelWatch better.
Hmm, thought it did.
As long as CDVR is providing the stream, it should.
Where do you see CDVR not providing it in the log?
Throw out those where a client connects directly to an HDHR Tuner because tuner sharing isn't enabled. That isn't monitoring CDVR, that's monitoring a client.
I never paid attention to that, but I think if you refresh the page it will be accurate.
I see the same issue with some of the CDVR web UI, have to refresh the page.
Based on my testing with various channel sources and setups, I've observed differences in how source information appears in event streams across configurations.
I don't have comprehensive logs from every possible configuration to prove absolute consistency one way or the other. This is precisely why feedback from users with different setups like yours is so valuable.
The log below is not consistent through every channel you tune to:
Would you be willing to test and confirm if this is the same case for you or is it consistent across more than 5 channels you tune-in in real time?
If so, please feel free to share your logs to check the consistency. This would help me better understand the pattern consistency in your specific setup, which could inform a more robust solution.
@slampman - To troubleshoot why your active streams counter stays at 0 even while you're watching MLB content, I'll need to see what's happening behind the scenes. Could you please share:
Container logs: Run this command and share the output:
docker logs channelwatch
Event stream data: While you're watching your MLB game, run this in another terminal window and capture about 30 seconds of output:
[2025-05-01 20:56:44] [CORE] Event: {"Type":"activities.set","Name":"3-processor","Value":"Processing newly recorded files."}
[2025-05-01 20:56:44] [CORE] Event: {"Type":"activities.set","Name":"3-processor","Value":"Refreshing smart rules for virtual channels"}
[2025-05-01 20:56:44] [CORE] Event: {"Type":"activities.set","Name":"3-processor","Value":"Refreshing smart rules for library collections"}
[2025-05-01 20:56:44] [CORE] Event: {"Type":"activities.set","Name":"3-processor"}
[2025-05-01 20:59:33] [CORE] Event: {"Type":"activities.set","Name":"6-stream-M3U-mlbradiofeeds-1429-10.100.12.98","Value":"Watching ch1429 MLBTV.WSH from iPad: buf=0% drop=0% timeouts=0 segment_timeouts=0 playlist_timeouts=0"}
[2025-05-01 20:59:33] [CORE] Program info: MLBTV.WSH (Ch1429) | MLB Baseball
[2025-05-01 20:59:33] [CORE] Watching MLBTV.WSH (Ch1429) - Device: iPad, Source: mlbradiofeeds, IP: 10.100.12.98
[2025-05-01 20:59:33] [CORE] Using program image: https://tmsimg.fancybits.co/assets/GNLZZGG001YMXXM.jpg?w=720&h=540
[2025-05-01 20:59:33] [CORE] Formatting alert with channel: MLBTV.WSH, device: iPad, program: MLB Baseball
[2025-05-01 20:59:33] [CORE] Format alert with channel_info: {'number': '1429', 'name': 'MLBTV.WSH', 'logo_url': 'https://tmsimg.fancybits.co/assets/GNLZZGG001YMXXM.jpg?w=720&h=540', 'program_title': 'MLB Baseball'}, device_info: {'name': 'iPad', 'source': 'mlbradiofeeds', 'ip_address': '10.100.12.98'}
[2025-05-01 20:59:33] [CORE] Adding program title to message: MLB Baseball
[2025-05-01 20:59:33] [CORE] Formatting message with parts: {'channel': {'number': '1429', 'name': 'MLBTV.WSH', 'program_title': 'MLB Baseball'}, 'device': 'iPad', 'ip': '10.100.12.98', 'source': 'mlbradiofeeds'}
[2025-05-01 20:59:33] [CORE] Added program line: Program: MLB Baseball
[2025-05-01 20:59:33] [CORE] Final formatted message: 📺 MLBTV.WSH
Channel: 1429
Program: MLB Baseball
Device: iPad
Device IP: 10.100.12.98
Source: mlbradiofeeds
[2025-05-01 20:59:33] [CORE] Sending notification: Channels DVR - Watching TV
[2025-05-01 20:59:33] [CORE] Other notification services: delivery failed
[2025-05-01 20:59:33] [CORE] Notification sent successfully
[2025-05-01 20:59:33] [CORE] Notification sent via Apprise: Channels DVR - Watching TV
[2025-05-01 20:59:33] [CORE] Activity recorded directly to history file: Watching Channel - Watching MLBTV.WSH on iPad
[2025-05-01 20:59:33] [CORE] Session added: 6-stream-M3U-mlbradiofeeds-1429-10.100.12.98
[2025-05-01 20:59:33] [CORE] Alert triggered: Channel-Watching
[2025-05-01 20:59:49] [CORE] DVR Storage: 1.23 TB free (69.0%)
[2025-05-01 20:59:50] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: buf=0% drop=0%"}
[2025-05-01 20:59:50] [CORE] Event: {"Type":"groups.updated","Name":"27397604","UpdatedAt":1746147590413}
[2025-05-01 20:59:50] [CORE] Event: {"Type":"files.created","Name":"23080","UpdatedAt":1746147590384}
[2025-05-01 20:59:50] [CORE] Event: {"Type":"jobs.updated","Name":"1746147590-292","UpdatedAt":1746147590452}
[2025-05-01 20:59:50] [CORE] Event: {"Type":"programs.set","Name":"EP051377600016","Value":"recording-1746147590-292"}
[2025-05-01 20:59:50] [CORE] Pre-fetching job details for job_id '1746147590-292' (Event: programs.set)
[2025-05-01 20:59:50] [CORE] Retrieving job by ID: 1746147590-292
[2025-05-01 20:59:50] [CORE] Job 1746147590-292 found in cache
[2025-05-01 20:59:50] [CORE] Successfully pre-fetched job details for '1746147590-292'
[2025-05-01 20:59:50] [CORE] Acquiring lock for event programs.set (thread 140605937281848)...
[2025-05-01 20:59:50] [CORE] Lock acquired for event programs.set (thread 140605937281848).
[2025-05-01 20:59:50] [CORE] Formatting message with parts: {'status': '🔴 Recording (Scheduled)', 'details': 'Program: Doctor Odyssey', 'time_table': '-----------------------\nRecording: 8:59 PM EDT\nDuration: 1 hour 1 minute', 'channel': {'number': '13.1', 'name': 'WVEC-HD'}, 'custom': 'Mayhem ensues when high-profile book tours for trad wives and sex-positive groups are double-booked.'}
[2025-05-01 20:59:50] [CORE] Final formatted message: 📺 WVEC-HD
Channel: 13.1
Status: 🔴 Recording (Scheduled)
Program: Doctor Odyssey
Mayhem ensues when high-profile book tours for trad wives and sex-positive groups are double-booked.
-----------------------
Recording: 8:59 PM EDT
Duration: 1 hour 1 minute
[2025-05-01 20:59:50] [CORE] Recording started (Scheduled): Doctor Odyssey on WVEC-HD, Duration: 1 hour 1 minute
[2025-05-01 20:59:50] [CORE] Recording event recorded: Recording (Scheduled): Doctor Odyssey on WVEC-HD
[2025-05-01 20:59:50] [CORE] Sending notification: Channels DVR - Recording Event
[2025-05-01 20:59:50] [CORE] Other notification services: delivery failed
[2025-05-01 20:59:50] [CORE] Notification sent successfully
[2025-05-01 20:59:50] [CORE] Notification sent via Apprise: Channels DVR - Recording Event
[2025-05-01 20:59:50] [CORE] Processing complete for programs.set. Result: True
[2025-05-01 20:59:50] [CORE] Lock released for event programs.set (thread 140605937281848).
[2025-05-01 20:59:50] [CORE] Alert triggered: Recording-Events
[2025-05-01 20:59:55] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=7.8Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:00] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.6Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:05] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.1Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:10] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=7.2Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:15] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.1Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:20] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:24] [CORE] Connection healthy: 1301 consecutive successful pings
[2025-05-01 21:00:25] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.9Mb/sec buf=0% drop=0%"}
[2025-05-01 21:00:30] [CORE] Event: {"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4Mb/sec buf=0% drop=0%"}
seth@docker:~$
*** System restart required ***
Last login: Thu May 1 15:39:57 2025 from 172.16.1.11
seth@docker:~$ curl -H "Accept: text/event-stream" http://192.168.12.30:8089/dvr/events/subscribe
{"Type":"hello", "Version":"2025.05.01.0438"}
{"Type":"activities.set","Name":"6-stream-M3U-mlbradiofeeds-1429-10.100.12.98","Value":"Watching ch1429 MLBTV.WSH from iPad: buf=0% drop=0% timeouts=0 segment_timeouts=0 playlist_timeouts=0"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: buf=0% drop=0%"}
{"Type":"groups.updated","Name":"27397604","UpdatedAt":1746147590413}
{"Type":"files.created","Name":"23080","UpdatedAt":1746147590384}
{"Type":"jobs.updated","Name":"1746147590-292","UpdatedAt":1746147590452}
{"Type":"programs.set","Name":"EP051377600016","Value":"recording-1746147590-292"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=7.8Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.6Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.1Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=7.2Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.1Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.9Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=3.7Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=6.8Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.2Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=7.3Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=6.8Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=6.2Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=6.5Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=3Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=5.7Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.1Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=3.2Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=4.1Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=3.6Mb/sec buf=0% drop=0%"}
{"Type":"activities.set","Name":"0-job-1746147590-292","Value":"Recording ch13.1 for Doctor Odyssey until 10:01PM: strength=100% quality=100% symbol=100% rate=3.7Mb/sec buf=0% drop=0%"}
New bnhf/olivetin:latest (aka bnhf/olivetin:2025.05.02) pushed today that transitions ChannelWatch from an OliveTin Action, to a stack you can deploy via Project One-Click. This makes more sense now that it has its own WebUI:
If you've been using ChannelWatch via the Action, the best approach is to kill it by using a log_level of 0 in the Action. Then in the Project One-Click Delete a Project One-Click Channels DVR Extension Action choose ChannelWatch and click Start. This will delete the current ChannelWatch image, and clear the decks for a fresh start:
Then, you can proceed with deploying ChannelWatch via Project One-Click. If you're an Apple or Synology user, keep in mind your HOST_DIR value cannot be /data, but needs to be a parent directory you can write to.
In the case of Apple, this is usually /Users/<your username>, the channelwatch subdirectory will be added automatically to the parent you specify. For Synology, /volume1/docker is the usual choice, and again a channelwatch subdirectory will be added automatically to that parent. As always, on Synology, that directory /volume1/docker/channelwatch needs to exist before you attempt to deploy the stack.
Same server. Record channel and then watch same channel (watch live, not recording) which does tuner sharing. Started recording, started watching 14 secs later, cancelled recording, stopped watching 14 secs after cancelling recording.
2025/05/03 15:09:34.207236 [DVR] Starting job 1746310174-ch3045 Duck Dynasty on ch=[3045]
2025/05/03 15:09:35.126128 [TNR] Opened connection to M3U-tubiTV for ch3045 Duck Dynasty
2025/05/03 15:09:35.178166 [DVR] Recording for job 1746310174-ch3045 from M3U-tubiTV ch3045 into "TV/Duck Dynasty/Duck Dynasty S05E01 S05E01 Boomerang Becca 2025-05-03-1509.mpg" for 15m38.792522363s
2025/05/03 15:09:35.539106 [IDX] Generating video index for job 1746310174-ch3045
2025/05/03 15:09:49.103158 [TNR] Sharing existing connection to M3U-tubiTV for ch3045 Duck Dynasty (clients=2, len=0)
2025/05/03 15:09:49.103452 [HLS] Starting live stream for channel 3045 from 192.168.1.96 (bitrate=3000kbps)
2025/05/03 15:09:49.345246 [HLS] Probed live stream in 241.270578ms: h264 1280x720 progressive 2729954bps
2025/05/03 15:09:49.655182 [HLS] Session ch3045-dANY-ip192.168.1.96 started in 551.612463ms
2025/05/03 15:11:47.047086 [SNR] Buffer statistics for "TV/Duck Dynasty/Duck Dynasty S05E01 S05E01 Boomerang Becca 2025-05-03-1509.mpg": buf=0% drop=0%
2025/05/03 15:11:47.047240 [SNR] Streaming statistics for "TV/Duck Dynasty/Duck Dynasty S05E01 S05E01 Boomerang Becca 2025-05-03-1509.mpg": timeouts=0 segment_timeouts=0 playlist_timeouts=0
2025/05/03 15:11:47.144489 [MTS] Statistics for "TV/Duck Dynasty/Duck Dynasty S05E01 S05E01 Boomerang Becca 2025-05-03-1509.mpg": discontinuity_detected=0 transport_errors=0 saw_pcr=true saw_pmt=true highest_pts=141.274467
2025/05/03 15:11:47.161528 [DVR] Job cancelled: 1746310174-ch3045 Duck Dynasty
2025/05/03 15:11:47.257245 [DVR] Processing file-2885: TV/Duck Dynasty/Duck Dynasty S05E01 S05E01 Boomerang Becca 2025-05-03-1509.mpg
2025/05/03 15:12:01.676500 [HLS] Stopping transcoder session ch3045-dANY-ip192.168.1.96 (out=2m18.123333s finished=false first_seq=1 last_seq=72)
2025/05/03 15:12:01.692597 [TNR] Closed connection to M3U-tubiTV for ch3045 Duck Dynasty
2025/05/03 15:12:01.692842 [SNR] Buffer statistics for ch3045 Duck Dynasty: buf=0% drop=0%
2025/05/03 15:12:01.692967 [SNR] Streaming statistics for ch3045 Duck Dynasty: timeouts=0 segment_timeouts=0 playlist_timeouts=0
Hi everyone! First, I want to thank you all for your continued feedback and support for ChannelWatch. Your input is invaluable in making this tool better for everyone.
Current Issues:
I've noted several issues that I'll be addressing during my mid-week development sessions:
The source detection issue shared by @chDVRuser with the detailed logs provided
The stream counter issue reported by @slampman where MLB streams aren't being detected correctly
The duplicate VOD watching notifications issue that @chDVRuser reported, where notifications are repeating every 5 minutes even after updating to v0.7
I appreciate the comprehensive data everybody has provided - this will be extremely helpful in diagnosing what's happening.
GitHub Issues Tracking:
For better organization and tracking, please submit bugs and feature requests to:
This helps me prioritize work and ensures nothing gets missed. As a solo developer, this centralized system is tremendously helpful for maintaining quality.
Forum Activity:
Most of my responses will be coming mid-week each week when I'm actively working on the project. I'll continue to check the forum, with my primary focus here being release notes and community updates.
I'm committed to maintaining and improving ChannelWatch as I balance this with my new project (and no, it's not another Channels DVR tool - I'm not trying to compete with myself! )
Special Thanks:
I also want to thank @bnhf for integrating ChannelWatch into Project One-Click! This is a fantastic development that makes installation much easier for many users, especially on Apple and Synology systems. The new deployment method via Project One-Click is a great improvement over the previous Action-based approach.
Not really sure what to make of this, but it looks like ChannelWatch sent something like 2000 notifications yesterday via Pushover. I received 100+ of them in very rapid succession on my phone, before I shut the container down.
I'm somewhat reluctant to fire it back up again, as one could burn through the 10K messages per month allowed in a big hurry. You can see my typical daily rate here, followed by a huge spike yesterday: