Page 18 of 20

Re: Pulse-Eight CEC +

Posted: Tue Aug 20, 2019 3:05 am
by kgschlosser
OK I am going to give you a little short about CEC..
It is a horrid standard

#1: There is no certification for it. meaning so long as any manufacturer implements event a single control they are allowed to use the CEC logo
#2: Most manufacturers do implement a piece of it. then they hack the rest apart and develop their own standard. Any TV that carries the CEC logo but when you go into the settings for the device it is named something else..

Here are a few examples
  • 1-Touch Play: Roku
  • Anynet+: Samsung
  • Aquos Link: Sharp
  • BRAVIA Link, BRAVIA Sync: Sony
  • CE-Link, Regza Link: Toshiba
  • E-link: AOC
  • EasyLink: Philips
  • Fun-Link: Funai, Sylvania, Emerson, Magnavox, Philips
  • INlink: Insignia
  • Kuro Link: Pioneer
  • NetCommand, Realink: Mitsubishi
  • RIHD: Onkyo
  • RuncoLink: Runco International
  • SimpLink: LG
  • T-Link: Thomson
  • VIERA Link, HDAVI Control, EZ-Sync: Panasonic
When they do this they have added a portion of the CEC specification and then added a bunch of stuff that is their own. which is not native CEC.

#3: When CEC is used by the manufacturers almost none of them use the entire specification. this is not a requirement.
#4: 1/2 the crap in the CEC specification doesn't even work/was never finished.
#5: NEVER use an HDMI cable greater then 6 feet and expect to have CEC be reliable.
#6: manufacturers do not document CEC properly. So Try different HDMI ports and different arrangements that way before you give up. You can try connecting the HDMI cable from the output from the TV to the input on the AVR and see what happens. sometimes they only allow a portion of the control on specific HDMI ports. TV manufacturers feel that the TV is the "Master" and it is what controls what devices are on and off... They feel that their remote is the one that is going to get used to say change the input on the AVR. they do not set the thing up in a manner that would allow you to change the input on the TV from the AVR remote. That is not the design of the protocol but that is the kind of thing they do.

make sure that you set the HDMI port in the plugin config dialog. This is extremely important.. The port number MUST match the port number that you have the adapter plugged into on the TV.

Import error cec.dll

Posted: Sat Nov 23, 2019 8:44 am
by RichardH
First of all many thanks for the work done improving this plugin in particular and EventGhost in general.
Several weeks ago I upgraded to this latest version of the PulseEight plugin. It has worked well for me until yesterday. Now, however, for no obvious reason, the plugin fails to import cec.dll. This is the log of an attempt to add the plugin to an empty EG tree:

Code: Select all

9:14:17 AM   ---> Welcome to EventGhost <---
9:14:17 AM   EventGhost has found devices on your system, that can be 
9:14:17 AM   handled by the following plugins and are not loaded by your
9:14:17 AM   current configuration:
9:14:17 AM      - Pulse-Eight CEC+
9:14:17 AM   If you want to use them, please add the missing plugins.
9:14:17 AM   Autostart
9:14:57 AM   Error loading plugin file: C:\ProgramData\EventGhost\plugins\PulseEightPlus
9:14:57 AM   Traceback (most recent call last) (0.5.0-rc6):
9:14:57 AM     File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__init__.py", line 84, in <module>
9:14:57 AM       from __cec_core import (
9:14:57 AM     File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\__init__.py", line 55, in <module>
9:14:57 AM       import cec
9:14:57 AM     File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\cec\__init__.py", line 25, in <module>
9:14:57 AM       _cec = swig_import_helper()
9:14:57 AM     File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\cec\__init__.py", line 22, in swig_import_helper
9:14:57 AM       import _cec
9:14:57 AM   ImportError: DLL load failed: The specified module could not be found.
This happened on the same day that I installed a debugger (windbg), though I cannot be sure if that is related to this problem. I have already uninstalled the debugger, the VIsual C++ 2015 redistributables (which both the plugin and the debugger install), the plugin, and all PulseEight software and drivers. I then repeated the steps in the first post of this topic.
The symptoms seem to me to resemble the problem that the special libCEC 4.0.2 solved (and worked for me until recently). I hope someone has some insight into what is going on and what else I could try to get this plugin working again. The machine concerned runs Windows 7 (because I still want to use Windows Media Center).

Re: Pulse-Eight CEC +

Posted: Sat Nov 23, 2019 7:44 pm
by kgschlosser
I would uninstall the plug-in from EG
Then save and close EG
Remove the cec driver package from your computer completely.
Reboot your computer.
Reinstall the driver package I attached to the first post. Then reinstall the plug-in in EG. Make sure that when you install the driver package that you do not install the EG plug-in included with the package. Use the one from this forum thread.

Re: Pulse-Eight CEC +

Posted: Sun Nov 24, 2019 7:12 am
by RichardH
Thanks for the reply.
Unfortunately, the error is repeatable. Just in case I missed something, these are the steps I did:
- I deleted the Pulse-EightPlus plugin from %programdata%\EventGhost\plugins;
- I saved an EG tree containing no plugins;
- I uninstalled the Pulse-Eight drivers and their software through Control Panel;
- I rebooted the computer. The device appears in Device Manager under Other Devices with an exclamation mark;
- The driver package is no longer available in the first post. I downloaded the zip file from another post in this thread. It contains libCEC-4.0.2.exe, the Date Modified of which is 1 Aug 2018. I ran that. The device now appears in Device Manager under the correct COM port.
- I clicked PulseEightPlus-0.4.7b.egplugin. The Pulse-EightPlus plugin reappears in %programdata%\EventGhost\plugins;
- I opened Event Ghost and attempted to add the Pulse-EightPlus plugin. This fails with the exact same errors as before.

These are also the same steps I went through successfully several weeks ago. Have you any idea why this has suddenly stopped working?

Re: Pulse-Eight CEC +

Posted: Sun Nov 24, 2019 7:34 am
by kgschlosser
not a clue.

you can try moving the _cec folder from the plugin directory to c:\program files (x86)\eventghost\lib27\site-packages

Re: Pulse-Eight CEC +

Posted: Sun Nov 24, 2019 12:10 pm
by RichardH
There is no _cec folder.
I tried moving both the __cec_core folder and just its cec subfolder from the plugin location to site-packages. The python code is found and runs in both cases, but the only differences in the logs are that the paths change accordingly. The module still won't load.

I also tried safe mode, with the same result.

Re: Pulse-Eight CEC +

Posted: Sun Nov 24, 2019 6:33 pm
by kgschlosser
shutdown EG

go to c:\program files (x86)\eventghost\plugins
make sure there is no pulse eight plugin in that folder. if there is delete it.

then go to %programdata%\eventghost\plugins

go into the pulse eight plugin directory located there.
in there you will see a folder __cec_core go into that folder.
then you will see another folder cec go into that folder.
you should find an __init__.py file also an _cec.py file and an _cec.pyd file.
delete the _cec.py file and also the _cec.pyc (if there is one in there.)
I want you to move the _cec.pyd file to c:\program files (x86)\eventghost\lib27\site-packages folder.

then start up EG and see what happens.
There is something stuck some place that is causing us a hard hour. and we need to locate it.

another thing I want you to do is this..
make a new macro that has a python script action in it.
paste the code below into the python script action.

then run/test the action. It is going to output a bunch of information. It will tell you when it is finished.
IMPORTANT ****DO NOT COPY ANYTHING.****
create a new text file and then press ctrl+v on your keyboard. (this is going to seem strange but just do it)
it is going to paste in the information I need.
zip up that text file and send it to me in a PM.

Code: Select all



def do():
    eg.mainFrame.logCtrl.OnCmdClearLog()
    data = []
    import sys
    import os

    print 'SYS PATH'
    data += ['', 'SYS PATH']
    for item in sys.path:
        print '   ', item
        data += ['    ' + item]

    print

    print 'OS ENVIRONMENT'
    data += ['', 'OS ENVIRONMENT']
    for key, value in os.environ.items():
        if ';' in value:
            print '   ', key, '='
            data += ['    ' + key + ' = ']
            for item in value.split(';'):
                data += ['        ' + item]
                print '       ', item
        else:
            data += ['    ' + key + ' = ' + value]
            print '   ', key, '=', value
            
    print
    print 'PLUGINS'
    data += ['', 'PLUGINS']

    for plugin_info in eg.pluginManager.GetPluginInfoList():
        data += ['    ' + str(plugin_info.name) + ' ' + str(plugin_info.path)]
        print '   ', plugin_info.name, plugin_info.path
        
        
    print
    print 'LOADED MODULES'
    data += ['', 'LOADED MODULES']
    count = 0
    line = ''

    for mod in sorted(sys.modules.keys()):
        data += ['    ' + mod]
        line += mod + ', '
        count += 1
        if count == 9:
            print '   ', line
            line = ''
            count = 0
    
    wx.TheClipboard.Open()
    wx.TheClipboard.SetData(wx.TextDataObject('\n'.join(data)))
    wx.TheClipboard.Close()
    
    print 'FINISHED!!'

wx.CallAfter(do)

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 2:59 am
by RichardH
Thanks. Same result with only _cec.pyd in site-packages. PM sent.

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 8:03 am
by kgschlosser
YAY I have fixed the problem..

I also have a new set of instructions for installation of the drivers. I am going to update the first post..

Sorry it took me so long to get this fixed. I had to be able to replicate the problem so I would know where to look to correct the issue.

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 11:22 am
by RichardH
Well, that was quick. Very sorry to say the module still won't load. The line numbers in the log are different:

Code: Select all

---> Welcome to EventGhost <---
EventGhost has found devices on your system, that can be 
handled by the following plugins and are not loaded by your
current configuration:
   - Pulse-Eight CEC+
If you want to use them, please add the missing plugins.
Autostart
Error loading plugin file: C:\ProgramData\EventGhost\plugins\PulseEightPlus
Traceback (most recent call last) (0.5.0-rc6):
  File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__init__.py", line 84, in <module>
    import __cec_core as cec_core # NOQA
  File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\__init__.py", line 55, in <module>
    from . import cec
  File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\cec\__init__.py", line 27, in <module>
    _cec = swig_import_helper()
  File "C:\ProgramData\EventGhost\plugins\PulseEightPlus\__cec_core\cec\__init__.py", line 26, in swig_import_helper
    return importlib.import_module('_cec')
  File "importlib\__init__.pyc", line 37, in import_module
ImportError: No module named _cec
Hope you have some more ideas!

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 3:05 pm
by kgschlosser
ok this is what I want you to do.

uninstall anything that is pulse-eight from your PC
delete the plugin.
uninstall the 2015 VC redists
reboot
make sure that you have your cec adapter plugged in and that it is showing up with the yellow exclamation under ports

install the 2015 VC redists from the first post.
install the drivers from the first post.
install the plugin from the first post.

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 4:39 pm
by RichardH
Still no change, I'm afraid.
Cleaned everything and followed all the steps.
This time I definitely had the correct 14.0.23026 VC++ redist versions in place before installing the driver. Not sure that was the case before. Makes no difference though.
I assume you are unable to reproduce this? That makes it hard.
I can see it falls over in SWIG-generated code, but I have no idea how to debug that myself.

Re: Pulse-Eight CEC +

Posted: Mon Nov 25, 2019 9:53 pm
by kgschlosser
I am at a loss as to what the problem is.

I can simulate the exact same error you are having by renaming the cec.dll file in the plugin

Re: Pulse-Eight CEC +

Posted: Tue Nov 26, 2019 6:14 am
by RichardH
That would make sense. SWIG can't wrap what it can't find, so renaming the dll would force the error return. The question is what makes it choke on a dll that is present. (And what changed to make this happen.)
I think I am going to finish off a couple of other jobs and come back to this later with a clear head.
Thanks for your time and trouble so far.

Re: Pulse-Eight CEC +

Posted: Tue Nov 26, 2019 4:16 pm
by kgschlosser
That is what has got me baffled. because the dll is there along side the _cec.pyd file