И называется она HDMI-CEC!
HDMI-CEC это технология управления устройствами через кабель HDMI
кому интересно почитайте например тут: http://1fleshka.ru/vse-chto-vy-eshhe-ne ... i-cec.html
У разных производителей телевизоров она имеет свое воплощение,
например Samsung называет это Anynet+, и это как раз мой случай!
Как оказалась, технология может быть очень даже востребована в MajorDoMo, а именно:
Имеем:
- (ТВ) телевизор Samsung (не очень новый, но имеет Wi-Fi, smart и т.д.) позднее напишу модель, если нужно!
- (ПК) с Windows 7 и установленным MajorDoMo
- (RP) Raspberry Pi 2 (на нем у меня сеть 1-wire через OWFS)
- (HDMI) кабель HDMI соединяющий RP и ТВ
- (plink) установленный на ПК комплект программ putty
к ТВ у меня подключен спутниковый ресивер, DVD, и еще что-то, т.е. он для просмотра передач, видео и т.д.
а к RP он у меня оказался подключен случайно!
для управления ТВ у меня прекрасно работает этот код: http://majordomo.smartliving.ru/forum/v ... ?f=8&t=691
но понятно, что управление ТВ возможно только если он Онлайн, т.е. подключен к сети, и поскольку
в момент когда он выключен (ну в режиме standby) то его модуль Wi-Fi, естественно, отключен и, соответственно, через код его можно выключить, а вот Включить увы, нельзя!
а почему бы не использовать HDM-CEC подумал я! и вот:
1) не забудьте включить на ТВ функцию управления через HDMI-CEC
у меня это Anynet+
2)устанавливаем на RP:
Код: Выделить всё
sudo apt-get install cec-utils
включить ТВ
Код: Выделить всё
echo on 0 | cec-client -s -d 1
Код: Выделить всё
echo standby 0 | cec-client -s -d 1
Код: Выделить всё
echo pow 0 | cec-client -s -d 1
далее, как сделал я, добавляем в нужный нам сценарий или шаблон поведения
(но это в моем случае, у вас может быть по другому)
Код: Выделить всё
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run('cmd /C "D:\Bin\putty\plink.exe" -pw pasword pi@192.168.1.111 -m D:\Bin\putty\tvOn.txt', 0, false);
Код: Выделить всё
echo on 0 | cec-client -s -d 1
1) т.к. у меня MajorDoMo стоит на другом компьютере, то мне приходиться подключаться к нему через интерфейс командной строки putty
2) через использование BAT файлов у меня не получилось корректно передать команду, да и открывающееся окно
родного Виндовсовского cmd немного раздражает, поэтому VBScript!
3) выполнять команду, вернее выполнить plink с параметром - echo on 0 | cec-client -s -d 1 напрямую VBScript (да и Батник тоже) у меня, почему-то, отказался, поэтому подставляю файл txt с командой.
Вопросы к знатокам Linux:
1) $oExec всегда возвращает 0, как мне получить таким образом результат echo pow 0 | cec-client -s -d 1 ?
2) если бы Алиса была на этой RP, то без использования VBScript я думаю, что через $x = exec(....), я вероятно получил бы что нужно?
Самое интересное:
есть сайт http://www.cec-o-matic.com/ на котором можно взять коды разных команд для управления ТВ и не только!!! для этого полезно глянуть сюда: http://blog.endpoint.com/2012/11/using- ... vices.html