Skip to content
This repository has been archived by the owner on Dec 19, 2022. It is now read-only.

DEBUG: ToggleDeviceState - putting CEC device on standby... - but nothing happenes #8

Open
natterstefan opened this issue Nov 19, 2017 · 19 comments

Comments

@natterstefan
Copy link

natterstefan commented Nov 19, 2017

Hello,

first of all - thanks for making such a great script. It looks very promising. But I am not able to make it work. The following issue occurs (originally posted here):

(...) The Pi answers (get the following response) but the TV doesn't act (eg. turn on).

My Request and the Response:

  • /jsonrpc?request={"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.json-cec","params":{"command":"standby"}},"id":1}
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "OK"
}

Am I missing any setting (firewall) or something? Or should it work kind of out of the box?

Edit: Taking a look into the kodi.log reveals the following:

13:08:05.720 T:1491071984   DEBUG: CWebServer[80]: request received for /jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Addons.ExecuteAddon%22,%22params%22:{%22addonid%22:%22script.json-cec%22,%22params%22:{%22command%22:%22standby%22}},%22id%22:1}
13:08:05.736 T:1305474032   DEBUG: Thread LanguageInvoker start, auto delete: false
13:08:05.737 T:1305474032    INFO: initializing python engine.
13:08:05.737 T:1305474032   DEBUG: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): start processing
13:08:06.222 T:1305474032   DEBUG: -->Python Interpreter Initialized<--
13:08:06.223 T:1305474032   DEBUG: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): the source file to load is "/home/osmc/.kodi/addons/script.json-cec/script.py"
13:08:06.224 T:1305474032   DEBUG: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): setting the Python path to /home/osmc/.kodi/addons/script.json-cec:/usr/lib/python2.7:/usr/lib/python2.7/plat-arm-linux-gnueabihf:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PILcompat:/usr/lib/python2.7/dist-packages/gtk-2.0
13:08:06.224 T:1305474032   DEBUG: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): entering source directory /home/osmc/.kodi/addons/script.json-cec
13:08:06.225 T:1305474032   DEBUG: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): instantiating addon using automatically obtained id of "script.json-cec" dependent on version 2.1.0 of the xbmc.python api
13:08:06.336 T:1305474032    INFO: CPythonInvoker(29, /home/osmc/.kodi/addons/script.json-cec/script.py): script successfully run
13:08:06.344 T:1305474032    INFO: Python script stopped
13:08:06.344 T:1305474032   DEBUG: Thread LanguageInvoker 1305474032 terminating
13:08:06.350 T:1958453248   DEBUG: ToggleDeviceState - putting CEC device on standby...

But nothing happened... Even though I see: 13:08:06.350 T:1958453248 DEBUG: ToggleDeviceState - putting CEC device on standby....

Any clues?

@natterstefan
Copy link
Author

Hm. I guess it is something you are not able to fix, are you? Because I just saw this: #1

@natterstefan natterstefan changed the title DEBUG: ToggleDeviceState - waking up CEC device... - but nothing happenes DEBUG: ToggleDeviceState - putting CEC device on standby... - but nothing happenes Nov 19, 2017
@joshjowen
Copy link
Owner

Unfortunately, I don't think that there is much I can do about it as you have already noticed. I'll leave this issue open but if you take a look at the source code you will see that the script really does very little itself, it just passes through the commands to KODI's built in functions

@natterstefan
Copy link
Author

@joshjowen Yeah, I read through your code and got that you are not responsible. Must be somewhere else, maybe also my TV does not support it (only turn on but not turn off via CEC). Another reason to buy a new TV ^^ Thanks though.

@mattie47
Copy link
Contributor

@natterstefan my old Samsung series 5 LCD could only turn on, and not off via CEC.

You should be able to confirm this just using the cec-client commands over SSH first.

Confirm that ON/OFF works with cec-client first, and then we can try narrow down what the problem is. Of course restart Kodi or your raspberry pi after using cec-client given it kills the libcec functionality within Kodi.

Personally I've found the 3rd kodi cec function toggle not to do anything super useful.

I think given you've confirmed that JSON-cec is correctly sending the commands, and Kodi seems to be doing some form of action on it, we can rule these variables out.

Thanks,

Matt

@pittbull
Copy link

@natterstefan @joshjowen

I found this code whilst implementing Kodi/Alexa and I thought "Hey!" what an excellent idea. Now - I did get the same response as you did in that the script successfully completes but nothing happens. But - I remembered a code snippet I used a few weeks back in relation to Kodi and CEC and there seem to be an issue with how you are calling the internal CEC function within Python.

I updated as follows:

if command and command[0] == 'activate':
        #xbmc.executebuiltin('CECActivateSource')
        xbmc.executebuiltin('CECActivateSource()')

elif command and command[0] == 'toggle':
        #xbmc.executebuiltin('CECToggleState')
        xbmc.executebuiltin('CECToggleState()')

elif command and command[0] == 'standby':
        #xbmc.executebuiltin('CECStandby')
          xbmc.executebuiltin('CECStandby()')

What I achieved was to atleast power ON my tv - but neither toggle nor standby works. Maybe this is something we can look into? :)

@pittbull
Copy link

pittbull commented Jan 11, 2018

I just found this as well but cannot test before I get home:

https://forum.kodi.tv/showthread.php?tid=149356&pid=2253184#pid2253184

Basically it states:

Change:
<setting id="standby_devices" value="231" />
to
<setting id="standby_devices" value="36037" />
in
~/.kodi/userdata/peripheral_data/rpi_2708_1001.xml
(or equivalent)

@natterstefan
Copy link
Author

@pittbull this sounds indeed promising. I am curious what you will tell us later.

@pittbull
Copy link

pittbull commented Jan 11, 2018

Hopefully I can tell you that it works because yesterday the WAF hit an all time high when I introduced Alexa controlled KODI - with automatic tv power on. ;)

@pittbull
Copy link

pittbull commented Jan 11, 2018

@natterstefan

I have now tested and achieved 100% success! 💃

This is what I did:

  • Merged the code from the kodi-alexa site with a couple of changes to the code - which is commented on the site
  • Changed the following on my KODI-box:
    <setting id="standby_devices" value="231" />
    to
    <setting id="standby_devices" value="36037" />
    in
    ~/.kodi/userdata/peripheral_data/rpi_2708_1001.xml
    (or equivalent)

Before changing the above file execute: "systemctl stop kodi" If this is not done the change will be reverted by Kodi.

  • I also changed the commands in the script.py for the addon as stated in my earlier post but I will retest this weekend if these can be reverted after the other changes.

Happy testing. :)

@natterstefan
Copy link
Author

Hi @pittbull, sounds really promising. I have some questions:

Question 1

  • where do I need to merge the code exactly to?

Question 2

Before changing the above file execute: "systemctl stop kodi"

  • Does this mean Kodi updates will change/overwrite this setting again?

Question 3

I also changed the commands in the script.py for the addon as stated in my earlier post but I will retest this weekend if these can be reverted after the other changes.

@mattie47
Copy link
Contributor

mattie47 commented Feb 5, 2018

@pittbull Thanks for posting above.

I just did a fresh install of osmc on my Rpi3 today, and struck the same problem as you and @natterstefan where standby would not do anything.

Making the above change you suggested has fixed the problem.

I haven't done a diff of upstream, but I suspect

<setting id="standby_devices" value="231" />

is a somewhat recent change as my previous install had the correct value of "36037"

@natterstefan
Q1:

osmc@osmc:~$ sudo systemctl stop mediacenter
or
osmc@osmc:~$ sudo systemctl stop kodi

Then change ~/.kodi/userdata/peripheral_data/rpi_XXXX_XXXX.xml with the following:

-<setting id="standby_devices" value="231" />
+<setting id="standby_devices" value="36037" />

Q2:

I get the vibe no. I suspect it shouldn't get touched unless it's a fresh install of kodi. Changes to this have persisted for me with reboots etc.

@danmed
Copy link

danmed commented Feb 26, 2018

I have the same problem but using a Vero 4K (OSMC)... i can't find the file you guys are talking about.. the peripheral_data folder is just empty

@mattie47
Copy link
Contributor

mattie47 commented Mar 4, 2018

@danmed Did you manage to figure out your problem?

I can't imagine the Vero4k OSMC differing too much from the RaspberryPi image.

@danmed
Copy link

danmed commented Mar 5, 2018

@mattie47
The problem is that in the peripherals settings in OSMC, the standby device is set to none.. if you change it in there it fixes the problem.. The onyl issue i have now is that it only responds if the Tv is on the OSMC source.. if i'm on another source nothing happens :'(

@mattie47
Copy link
Contributor

mattie47 commented Mar 6, 2018

The onyl issue i have now is that it only responds if the Tv is on the OSMC source.. if i'm on another source nothing happens :'(

I think for me I solve this by sending "on" and then "off". Sending on (at least with whatever I have configured) forces it to change source to Kodi, and then send off to turn off.

There should be some workaround for you, it's just a case of spending time figuring out how/what it is.

Thanks,

Matt

@danmed
Copy link

danmed commented Mar 6, 2018

That's an interesting idea... i'll give that a go

@chriskol
Copy link

chriskol commented Oct 31, 2018

I've encountered this (what @natterstefan had) with my new Samsung TV. When I get a chance, possibly this weekend, I'll try some of the tips above, but any chance of someone either merging into this code or forking their solution so a semi-luddite like me doesn't need to download, edit, install via zip, and can instead just not worry about me messing anything up? :D

@wwwindisch
Copy link

I can't turn off my TV, too. Turning it on works...
The entry
<setting id="standby_devices" value="36037" />
is in the file rpi_2708_1001.xml
But I'm not sure, if there are other entries in this CEC settings file, which could cause this problem. Could someone, who successfully managed to turn the TV on and off, please post the complete content of the file here for comparison? Thank you!

@FredrikWendt
Copy link

With a fresh install of OSMC on a Raspberry Pi 3, connected to a 10 year old Sony, I got this to work after going into System > Input > Peripherals > CEC Adapter > "Devices to power off during shutdown". I also took additional steps (see #11 ) but I believe this one was the kicker.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants