kodi.executebuiltin() не работает в Kodi: Isengard

Я написал сценарий домашней автоматизации для управления освещением, музыкой на коди и моим телевизором. У меня все работает кроме выключения телевизора. Я сопоставил свой файл keyboard.xml в коди, чтобы распознать «CECToggleState», и это работает нормально, но я хотел бы запустить это внутри скрипта Python.

Раньше можно было импортировать модуль xbmc, а затем использовать команду «xbmc.executebuiltin()» для запуска встроенных функций Kodi, таких как «CECToggleState». Модуль xbmc был заменен модулем kodi. Я видел примеры, в которых предлагается использовать «kodi.executebuiltin()», но модуль kodi, похоже, не поддерживает «executebuiltin». Когда я пытаюсь запустить эту команду в python, я получаю сообщение об ошибке:

"AttributeError: 'module' object has no attribute 'executebuiltin'"

Может ли кто-нибудь подтвердить, что это правда, или предложить, что заменило эту команду? Или кто-нибудь знает хорошую альтернативу для получения того же эффекта, т.е. программно отправить команду «TV off» через HDMI CEC?


person CallMeMisterX    schedule 18.03.2016    source источник


Ответы (2)


import xbmc
xbmc.executebuiltin('XBMC.CECToggleState()')

Это работает в моем аддоне Python в Изенгарде. Чтобы выключить телевизор, используйте:

xbmc.executebuiltin('XBMC.CECStandby()')

или включить:

xbmc.executebuiltin('XBMC.CECActivateSource()')
person Michael    schedule 19.05.2016

Вы должны написать xbmc.executebuitin("XBMC.CECToggleState()"), а не kodi.executebuitin("XBMC.CECToggleState()"), и, пожалуйста, обновите коди с isengard до стабильной версии (например, Kyrpton).

person Rachit kapadia    schedule 15.07.2017