Inteligentny Budynek Integracja ze sprzętem Audio/Video Onkyo przez Ethernet – Protokuł sterujący

Najnowszy sprzęt Onkyo (produkowany od 2010 roku) został wyposażony w złącze Ethernet (LAN) do łączności przez sieć oraz możliwości sterowania z zewnętrznego sprzętu. Onkyo posiada własny protokół sterowania swoimi urządzeniami “ICSP” dla RS232 oraz rozszerzony o dodatkowe nagłówki “eICSP” dla Ethernetu. Dzięki temu Inteligentny Dom eHouse może bezpośrednio sterować sprzętem Onkyo bezpośrednio przez sieć LAN. Sterowanie przez RS-232 wymaga dodatkowego Hardwaru i fizycznego połączenia ze sprzętem więc stało się nieekonomiczne w sprzęcie nowszej generacji wyposażonym w złącze Ethernet.
Protokół ICSP wygląda następująco: “!1PWR00\x0D” (dla wyłączenia zasilania) gdzie:

  • ‘!’ – jest początkiem komendy
  • cyfra jest to nr urządzenia
  • komenda sterująca
  • ‘\0x0D’ znak końca linii

Protokół eICSP jest rozszerzony o Headery (nagłówki) i wygląda następująco:
ISCP\x00\x00\x00\x10\x00\x00\x00\x08\x01\x00\x00\x00!1PWR01\x1A\x0D (włączenie zasilania)
ISCP\x00\x00\x00\x10\x00\x00\x00\x08\x01\x00\x00\x00!1PWR00\x1A\x0D (wyłączenie zasilania) gdzie:

  • Nagłówek stały: “ISCP\x00\x00\x00\x10\x00\x00\x00\x08\x01\x00\x00\x00”
  • ‘!’ początek komendy – jak w ICSP
  • cyfra jest to nr urządzenia – jak w ICSP
  • komenda sterująca – jak w ICSP
  • znak końca ramki “\x1A” lub “\x1A\x0A” lub “\x1A\x0D\x0A” w zależności od urządzenia. gdzie \x1A = [EOF], \x0A – [LF], \x0D – [CR]

Komendy sterujące wysyła się bezpośrednio z klienta TCP lub socketów TCP. Ponieważ nagłówek zawiera dane zapisane binarnie nie można zrobić tego ze standardowego Telneta.
Wg. dokumentacji urządzenia akceptują tylko jedno połączenie a producent rekomenduje utrzymywanie otwartego połączenia TCP.
Jednak jeśli chcemy sterować bezpośrednio z różnych urządzeń lub uniezależnić się od błędów sieci, oprogramowania lepiej jest wysłać komendę sterującą, odczekać na odbiór potwierdzenia ze sprzętu A/V a następnie rozłączyć połączenie TCP od sprzętu.
Tracimy w ten sposób online’owe odbieranie statusów komend sterowanych z zewnątrz np przez podczerwień ale w większości przypadków nie jest to koniecznie. Integracja pełna wymagałaby zaimplementowania całego statusu sprzętu A/V w panele sterujące (dedykowanego rozwiązania) dla danego sprzętu.
z poziomu aplikacji eHouse4cServer zdarzenie sterowania sprzętem A/V ma postać “onkyo%IP%%Komenda%” gdzie %IP% jest adresem IP urządzenia ONKYO, %KOMENDA% jest kodem ISCP np “!1PWR00”. Oprogramowanie eHouse4cServer samo dodaje header i footer przed wysłaniem zdarzenia do sprzętu A/V.
Protokół ONKYO eICSP:

eISCP Header I S C P
Header Size
Data Size
Version Reserved
eISCP Data 1stChar 2ndChar 3rdChar 4thChar
5thChar ISCP Message
EndChar
eISCP Data(=ISCP Message)
1st 2nd 3rd-5th 6th- last
! 1 P W R 0 1 [EOF] [CR] [LF]