[PATCH] Power Scheduler multiseat addon + WOL (1 Viewer)

JBravo

MP Donator
  • Premium Supporter
  • November 11, 2007
    269
    27
    Home Country
    Sweden Sweden
    Hi,

    Network Monitor
    I have added an option to monitor network activity in PowerScheduler TV Server plugin.

    This will prevent PowerScheduler to standby/hibernate the system when
    remote users are accessing network shares, FTP or other network services.

    A new tab has been added to the PowerScheduler configuration for Network Monitor settings.

    To use the patch just replace your PowerScheduler.dll with the attached file.

    PS Client keep alive fix
    I have also made a minor change to the PowerScheduler Client plugin. The client now keeps the server alive. This is only needed in a multiseat setup, see https://forum.team-mediaportal.com/improvement-suggestions-92/tv-server-goes-into-standby-even-if-mp-clients-present-54051/

    To use the patch replace PowerSchedulerClientPlugin.dll and PowerScheduler.Interfaces.dll with the attached files.

    Wake on Lan
    The TV plugin is updated to support WOL.

    A new config section is added to MediaPortal Configuration (Television->TV Client) for WOL. When using 'auto mac address' the TV server must be up and running the first time the MP client is started.

    To use the patch replace TVPlugin.dll and Configuration.exe with the attached files.

    The patches are based on SVN 22555 and works with MP 1.0.2. I have only tested this patch on Windows XP SP3, but it should work for Vista as well.

    Hope someone finds this patch useful.

    regards
    /jonas

    Update 2009-02-05;
    Did some changes to this patch, the dependency described above is NOT needed anymore.

    Update 2009-02-11;
    Some additions to the PowerScheduler client plugin.

    Update 2009-07-23;
    Updated to support MP 1.0.2

    Update 2009-07-26;
    Added WOL support for TV plugin.
    Increased max limit in Network Monitor to 9999.
     

    Attachments

    • PowerScheduler_multiseat_addon_WOL(using SVN 22555).zip
      30.8 KB

    mtjoernelund

    Portal Pro
    April 28, 2008
    102
    3
    Home Country
    Denmark Denmark
    Hi JBravo

    I downloaded your patch since it seemed like just the thing I needed to prevent my MP-machine from going to standby when a Squeezebox is playing music from the box somewhere else. But I can't make your patch work. When substituting Powerscheduler.dll with the one from your download I don't get any standby whatsoever. Any ideas?
     

    JBravo

    MP Donator
  • Premium Supporter
  • November 11, 2007
    269
    27
    Home Country
    Sweden Sweden
    Enable extensive logging for the Power Scheduler plugin, and check tv.log

    If you find entries like these the system will not stanby.

    2009-01-11 09:36:06.250000 [Powerscheduler Timer]: PowerScheduler: User input detected at 2009-01-11 09:36:06
    2009-01-11 09:36:06.250000 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 09:36:06.1410 , False
    2009-01-11 09:36:06.250000 [Powerscheduler Timer]: NetworkMonitorHandler: standby prevented: Atheros AR8121_AR8113_AR8114 PCI-E Ethernet Controller - Packet Scheduler Miniport
    2009-01-11 09:36:06.250000 [Powerscheduler Timer]: NetworkMonitorHandler: ulSpeed: 1125
    2009-01-11 09:36:06.265625 [Powerscheduler Timer]: NetworkMonitorHandler: dlSpeed: 265
    2009-01-11 09:36:06.265625 [Powerscheduler Timer]: PowerScheduler: User input detected at 2009-01-11 09:36:06
    2009-01-11 09:36:06.265625 [Powerscheduler Timer]: PowerScheduler.DisAllowShutdown: handler NetworkMonitorHandler wants to prevent standby
    2009-01-11 09:36:06.265625 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 2
     

    mtjoernelund

    Portal Pro
    April 28, 2008
    102
    3
    Home Country
    Denmark Denmark
    Tried looking at the logs. Seems that I have some peeks on the network traffic that prevents the box from going into standby (see quoted log below). As I understand it I can't set the limit on when network are idle higher than 100 kbs (correct?). Would it be possible for the plugin to allow this limit higher, since I see that my squeezebox drags out a minimum of 450-550kbs when playing?

    2009-01-11 11:07:53.765989 [11]: PowerScheduler: RegisterRemote tag: 1, uris: http://localhost:31458/ba99b14b_5cee_43ea_bb14_c78a66512cd7/2yjgwztsohghpc+hwm5xgpuz_1.rem, http://localhost:31458/ba99b14b_5cee_43ea_bb14_c78a66512cd7/2yjgwztsohghpc+hwm5xgpuz_1.rem

    2009-01-11 11:08:18.769989 [11]: PowerScheduler: User input detected at 11/01/2009 11:07:53

    2009-01-11 11:08:25.876989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:07:53.7679 , False

    2009-01-11 11:08:25.897989 [Powerscheduler Timer]: NetworkMonitorHandler: standby prevented: Realtek RTL8168C_8111C Family PCI-E Gigabit Ethernet NIC [NDIS 6.0]

    2009-01-11 11:08:25.898989 [Powerscheduler Timer]: NetworkMonitorHandler: ulSpeed: 14

    2009-01-11 11:08:25.899989 [Powerscheduler Timer]: NetworkMonitorHandler: dlSpeed: 158

    2009-01-11 11:08:25.900989 [Powerscheduler Timer]: PowerScheduler: User input detected at 11/01/2009 11:08:25

    2009-01-11 11:08:25.901989 [Powerscheduler Timer]: PowerScheduler.DisAllowShutdown: handler NetworkMonitorHandler wants to prevent standby

    2009-01-11 11:08:25.905989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:08:43.768989 [11]: PowerScheduler: User input detected at 11/01/2009 11:08:26

    2009-01-11 11:09:25.879989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:08:26.2169 , False

    2009-01-11 11:09:25.885989 [Powerscheduler Timer]: NetworkMonitorHandler: standby prevented: Realtek RTL8168C_8111C Family PCI-E Gigabit Ethernet NIC [NDIS 6.0]

    2009-01-11 11:09:25.886989 [Powerscheduler Timer]: NetworkMonitorHandler: ulSpeed: 8

    2009-01-11 11:09:25.886989 [Powerscheduler Timer]: NetworkMonitorHandler: dlSpeed: 217

    2009-01-11 11:09:25.887989 [Powerscheduler Timer]: PowerScheduler: User input detected at 11/01/2009 11:09:25

    2009-01-11 11:09:25.888989 [Powerscheduler Timer]: PowerScheduler.DisAllowShutdown: handler NetworkMonitorHandler wants to prevent standby

    2009-01-11 11:09:25.891989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:10:25.889989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:10:25.895989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:10:26.933989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:10:26.939989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:10:26.949989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:10:26.951989 [Powerscheduler Timer]: PowerScheduler: System changed from busy state to idle state

    2009-01-11 11:10:26.952989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:10:26.957989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:11:25.899989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:11:25.906989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:11:25.910989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:11:25.912989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:11:25.918989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:11:25.919989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:11:25.922989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:12:25.909989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:12:25.916989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:12:25.920989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:12:25.921989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:12:25.925989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:12:25.926989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:12:25.928989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:13:25.922989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:09:25.8869 , False

    2009-01-11 11:13:25.926989 [Powerscheduler Timer]: NetworkMonitorHandler: standby prevented: Realtek RTL8168C_8111C Family PCI-E Gigabit Ethernet NIC [NDIS 6.0]

    2009-01-11 11:13:25.927989 [Powerscheduler Timer]: NetworkMonitorHandler: ulSpeed: 12

    2009-01-11 11:13:25.928989 [Powerscheduler Timer]: NetworkMonitorHandler: dlSpeed: 600

    2009-01-11 11:13:25.929989 [Powerscheduler Timer]: PowerScheduler: User input detected at 11/01/2009 11:13:25

    2009-01-11 11:13:25.929989 [Powerscheduler Timer]: PowerScheduler.DisAllowShutdown: handler NetworkMonitorHandler wants to prevent standby

    2009-01-11 11:13:25.930989 [Powerscheduler Timer]: PowerScheduler: System changed from idle state to busy state

    2009-01-11 11:13:25.934989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:14:25.930989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:14:25.936989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:14:26.944989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:14:26.947989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:14:26.956989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:14:26.956989 [Powerscheduler Timer]: PowerScheduler: System changed from busy state to idle state

    2009-01-11 11:14:26.957989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:14:26.961989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:15:25.938989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:15:25.943989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:15:25.950989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:15:25.952989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:15:25.957989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:15:25.958989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:15:25.962989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:16:25.948989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:16:25.952989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:16:25.956989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:16:25.958989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:16:25.963989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:16:25.964989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:16:25.968989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99

    2009-01-11 11:17:25.964989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:17:25.970989 [Powerscheduler Timer]: NetworkMonitorHandler: standby allowed

    2009-01-11 11:17:25.975989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:GenericWakeupHandler time:31/12/9999 23:59:59

    2009-01-11 11:17:25.977989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:confused:cheduledRecordingsHandler time:31/12/9999 23:59:59

    2009-01-11 11:17:25.982989 [Powerscheduler Timer]: PowerScheduler.NextWakeupTime: inspecting handler:powerSchedulerClientPlugin time:31/12/9999 23:59:59

    2009-01-11 11:17:25.983989 [Powerscheduler Timer]: PowerScheduler: lastUserTime: 11:13:25.9289 , False

    2009-01-11 11:17:25.986989 [Powerscheduler Timer]: NetworkMonitorHandler: idle limit in KB/s: 99
     

    JBravo

    MP Donator
  • Premium Supporter
  • November 11, 2007
    269
    27
    Home Country
    Sweden Sweden
    Test this one, changed limit to 1000KB/s
     

    Attachments

    • PowerScheduler.zip
      30.6 KB

    nickotron

    MP Donator
  • Premium Supporter
  • March 3, 2008
    34
    2
    Home Country
    New Zealand New Zealand
    Tx JBRavo. Exacly what I'm after too, for keeping my HTPC up when Firefly is serving my Roku player. For the record the solution I got working 48 hours ago was to write a batch file that would ping Roku and stay resident while Roku was up. I then set the TV-Server PowerScheduler plugin to block on that process (cmd). After bit of fiddling so the bat was auto run by a scheduler, it worked well. Anyway, looking fwd to trying the elegant solution.

    One related question which I'm sure you can answer (I don't understand it from the manual)...

    Is the MediaPortal PowerScheduler plugin still required these days? What purpose does it serve, given the TV-Server plugin presumably knows whether its serving up any content to the client.

    The manual (MP client section near the end) isn't up to date in some aspects at least since the MP plugin has two tabs now.

    Also, some settings (standby or hibernate, idle) are duplicated with the Server plugin. Maybe these just shut the MP client if its on a diff machine?

    Tx.

    N.
     

    JBravo

    MP Donator
  • Premium Supporter
  • November 11, 2007
    269
    27
    Home Country
    Sweden Sweden
    In singleseat configuration both PowerScheduler client plugin and server plugin are required. I think the client plugin delegates much of the responiblity to the server plugin, that is, the client reports its state to the server and the server takes decision about standby.

    In a multiseat configuration, the client plugin and the server plugin are independent of each other. I suppose that's why some settings are duplicated.

    This is at least my view of it.
     

    disaster123

    MP Donator
  • Premium Supporter
  • May 14, 2008
    3,558
    434
    Home Country
    Germany Germany
    JBravo
    I think about integrating your patch also in my release - would it be possible to add another panel to powerscheduler server side where every user can configure his personal limit and can enable / disable the monitoring feature?
     

    JBravo

    MP Donator
  • Premium Supporter
  • November 11, 2007
    269
    27
    Home Country
    Sweden Sweden
    @JBravo
    I think about integrating your patch also in my release - would it be possible to add another panel to powerscheduler server side where every user can configure his personal limit and can enable / disable the monitoring feature?

    You are very welcome to intergrate this patch in your release.

    There is already added a new tab added to the Power Scheduler server plugin, were you can enable/disable the network monitor and also set a speed limit :D
     

    Users who are viewing this thread

    Top Bottom