HDMI-CEC sterowanie urządzeniami podłączonymi po HDMI
CEC to funkcja HDMI przeznaczona do sterowania urządzeniami podłączonymi po HDMI.
Idea działania jest taka, żeby urządzenia obsługujące CEC mogły sterować sobą nawzajem, dzięki temu na przykład pilot do telewizora może również sterować dekoderem.
Bramki AIS obsługują HDMI CEC, komendy CEC wysyłane do bramki wyłączamy/blokujemy - żeby nie pozwolić na wyłączenie/uśpienie bramki przez TV.
Możemy wysyłać komendy HDMI-CEC z bramki do podłączonych urządzeń po HDMI.
W nadchodzącej kolejnej aktualizacji dodamy serwis, który będzie wysyłał komendy HDMI-CEC i opiszemy tę funkcjonalność w dokumentacji.
W ten sposób będzie można sterować telewizorem z bramki i wykorzystać tę funkcjonalność np. do automatyzacji włączającej obraz z kamery na TV podłączonym do bramki po HDMI.
Identyfikatory komend są zapisywane w formacie szesnastkowym (Hexadecimal).
Nas najbardziej interesują te komendy:
One Touch Play - ta komenda umożliwia urządzeniom przełączanie telewizora w celu użycia go jako aktywnego źródła po rozpoczęciu odtwarzania. Żeby testowo wysłać komendę HDMI-CEC wystarczy w konsoli wkleić coś takiego:
su -c 'echo 0x40 0x04 > /sys/class/cec/cmd'
System Standby - umożliwia przełączanie urządzeń w tryb czuwania
gotowego uniwersalnego pilota się nie zrobi, bo tak jak widać u każdego może być inaczej
ja mam bramkę bezpośrednio wpiętą do TV a Sebastian przez amplituner i kody są już inne
ale oczywiście każdy kto “znajdzie swoje kody sterujące CEC” może sobie dodać własny pilot
wystarczy
PS
Z tym serwisem CEC chodziło mi o to żeby włączać na TV widok z kamery - zrobić taki wideodomofon z bramki podłączonej do TV. Opiszemy to w dokumentacji jak ta usługa cec_command będzie już wydana.
Taki scenariusz:
Dzwonek do bramki / drzwi
Jolka wie, że jestem w domu
Jolka nie wysyła mi powiadomienia na telefon (bo jestem w domu)
Jolka mówi -> “Ktoś dzwoni do drzwi, zobacz kto to na TV” i włącza TV po CEC, na który przekierowuje mi widok z kamery
Jolka pyta, “Czy mam otworzyć?” i włącza mikrofon…
ja zapominam się i zamiast “Otwórz furtkę” pytam “Jolka a kto to przyszedł?”
Jolka mówi “Nie rozumiem Jolka a kto to przyszedł”
ja mówię … ech Jolka, jaka Ty jesteś jeszcze nieogarnięta - tyle lat i Ty dalej nie rozpoznajesz Celiny!
Sromotnie brakuje nam wszystkim funkcjonalności domofonu w HA. Podgląd z kamer jest dobrze zintegrowany, a do dziś nie ma przesyłu dźwięku dwukierunkowego - funkcji domofonu.
Jest kamer ESP32 - foto na ekranie by wystarczyło. Gdyby tak jeszcze pogadać ze smartfona w aplikacji AIS do głośniczka przy bramie. Albo chociaż odtworzyć zaprogramowany komunikat kurierowi.
tak, zgadza się
mi kamery IP działają OK, ale żeby głos w HA z kamery usłyszeć to już chyba trzeba najpierw skompilować jądro Linux-a i ogólnie mieć najwyższy stopień wtajemniczenia
Z obrazem zresztą też nie jest idealnie, bo jest opóźnienie często (przez stream w ha). Dlatego pomysł mamy taki, że kiedyś przekierujemy obraz z wybranej kamery bezpośrednio na bramkę podłączoną do TV.
To przełączanie aktywności (programów) na bramce to też jest usługa, dzięki czemu w połączeniu z CEC i ESP32 kiedyś powinno dać się te klocki połączyć w video domofon.
W teorii funkcja One Touch Play umożliwia bramce automatyczne włączanie telewizora i przełączanie jego portu wejściowego na port do którego podpięta jest bramka.
Niestety tylko w teorii… bo producenci sprzętu wdrażają standard HDMI-CEC na różne sposoby, więc urządzenia nie zawsze się rozumieją, i obsługiwane funkcje różnią się w zależności od telewizora.
Dlatego nie da się zrobić uniwersalnego pilota CEC - ale każdy może sobie zrobić własny dostosowany do jego TV. Do tego jest ta usługa.
To że CEC mamy cały czas wyłączony to znaczy, że my ignorujemy/blokujemy komunikaty CEC które przychodzą po HDMI do bramki z innych urządzeń - nie pozwalamy w ten sposób uśpić czy wyłączyć bramki.
Ale my możemy z brami wystać komunikat CEC za pomocą usługi - czyli pozwalamy na wysyłanie komunikatów do urządzeń po HDMI ale sami nie reagujemy na komunikaty HDMI. Powinno być OK.
2. Średnio niskopoziomowo - poziomu linuxa binarką cectools
zamiast rozumieć co jest w dump_reg możemy skompilować binarkę (biblotekę do cec) i próbować komunikować się przez nią z CEC.
Tej binarki nie ma jeszcze w naszym repo apt, ale można skompilować na bramce, 2 projetky
kompilacja krok po kroku, na bramce
Kompiluj na bramce to tylko jeżeli rozumiesz co robisz.
Pamiętaj, że to co robisz a czego nie ma w dokumentacji AIS, robisz na własną odpowiedzialność - nikt tego nie wspiera i nie będzie tych komend tłumaczył
apt install cmake
mkdir cectools; cd cectools
git clone https://github.com/Pulse-Eight/platform.git
cd platform; mkdir build; cd build
cmake ..
sed -i "s#/usr/local#$PREFIX#g" cmake_install.cmake
make
make install
cd ../..
git clone https://github.com/mdrjr/libcec.git
cd libcec
./bootstrap
./configure --enable-exynos --prefix=$PREFIX
make
make install
czy da się jakoś ustawić aby po każdym restarcie bramki nie trzeba było ręcznie w ustawieniach bramki włączać cec aby w tv zamiast hdmi2 wyświetlała się nazwa bramki?