-
-
Notifications
You must be signed in to change notification settings - Fork 361
TV Service
A HomeKit TV service.
Type | Device Type |
---|---|
60 | TV Service |
The following configuration is available for TVs:
Section | Key | Description |
---|---|---|
Actions | "a" | The actions performed by the accessory |
Digital Inputs | "b" | GPIOs that invoke specific actions |
State & Status Inputs | "f[n]" & "g[n]" | Inputs that manage accessory state |
ICMP Ping Inputs | "q[n]" & "p[n]" | Ping inputs that manage accessory state |
Accessory Notifications | "m" | Notifications to send to another accessory |
Initial State | "s" | State a switch accessory enters on boot |
TV Input Sources | "i" | Array of supported TV Inputs e.g. HDMI, DVB etc. |
{
"c":{ "t":14, "p":"J*J*AaAaAaDFAa" },
"a":[{
"t":60,
"xa":0,
"i":[
{ "n":"MENU", "0":{ "i": [{ "r":2, "c":"CeCfAaBcAaAbC" }] } },
{ "n":"SOURCE", "0":{ "i":[{ "r":2, "c":"CeCeAhG" }] } },
{ "n":"MUTE", "0":{ "i":[{ "r":2,"c":"CeCeDhD" }] } }
],
"0":{ "i":[{ "r":4,"c":"CeCfAfAaF" }] },
"1":{ "i":[{"r":4,"c":"CeCfAfAaF" }] },
"6":{ "i":[{ "r":2,"c":"CeCjBaEbA" }] },
"7":{ "i":[{ "r":2,"c":"CeCeAdBbDbA" }] },
"8":{ "i":[{ "r":2,"c":"CeCeAaAbBbAaBbA" }] },
"9":{ "i":[{ "r":2,"c":"CeCfAcBaAaCbA" }] },
"10":{ "i":[{ "r":2,"c":"CeChAaBaCaAbA" }] },
"11":{ "i":[{ "r":2,"c":"CeChBaAaCbAaA" }] },
"13":{ "i":[{ "r":2,"c":"CeCeBaAaBcAaAbA" }] },
"17":{"i":[{"r":2,"c":"CeCeEhC"}]},
"22":{"i":[{"r":2,"c":"CeCeChE"}]},
"23":{"i":[{"r":2,"c":"CeCeBaAfAaD"}]},
"q0":[{"h":"192.168.1.100","r":0}],
"q1":[{"h":"192.168.1.100","r":1}]
},
{
"i":0.5,
"1":{ "s":[{ "a":1 }]}
}]
}
The above example is a real world example provided by @TriderG75. The example is for a Samsung TV using a universal IR device (such as a Smart Device IR Blaster).
Execution of all actions is disabled while the device boots ("xa:0"
).
The example has IR commands for each of the TV Service Actions "0"
thru "23"
and defines three TV Input Sources; MENU
, SOURCE
& MUTE
.
Refer the the IR Action documentation to see how to set up IR commands to control the TV via the universal IR device.
Additionally in this example the accessory has two ICMP Ping Status inputs defined. The On/Off state of this Samsung Smart TV can determined by pinging the IP address of the TV. If the ping is successful then the TV is on. The Ping Status inputs set the status the TV Power depending on the response from the ping.
This example also shows how a dummy switch can be created to allow the device
to enter setup mode by pressing a switch within the HomeKit application:
{ "i":0.5, "1":{ "s":[{ "a":1 }]} }
A TV service can provide multiple TV Input Sources "i"
. These are the inputs
the TV has e.g. HDMI1, HDMI2, USB etc.
The accessory can be configured to have as many TV Input Sources as required to control the TV. TV Input Sources show up within the HomeKit TV App as a scrollable list of inputs that can be selected.
See above example for ways that the TV Input Sources can be configured.
Each source "i"
definition requires a name ("n"
) and an action ("0"
).
The name "n"
is a text string. The action "0"
can be any action you want to
take in order to meet the requirement of the named source, but would normally
be an IR defined string ("c"
) e.g. {"n":"HDMI1","c":"CeCjBaEbA"}
A TV Service has many actions. See the list below for all the possible actions the HAA TV Service provides.
Key | Action | Description |
---|---|---|
"0" | Power off | Power off the TV (default) |
"1" | Power on | Power on the TV |
"6" | Arrow up | |
"7" | Arrow down | |
"8" | Arrow left | |
"9" | Arrow right | |
"10" | Select / OK | |
"11" | Back | |
"13" | Play / Pause | |
"17" | Info | |
"20" | No mute | |
"21" | Mute | |
"22" | Volume up | |
"23" | Volume down | |
"30" | Show TV Settings |
The list of Accessory Notifications "m"
values supported by a TV Service are:
Key | Value | Notification |
---|---|---|
"v" | 0 | Switch OFF (default) |
1 | Switch ON |
See the general Accessory Notifications section for details of how to configure these notifications.
Digital Inputs "b"
are supported by this accessory.
See Digital Inputs for details on how to define this mandatory option.
State inputs "f[n]"
& Status Inputs "g[n]"
are supported by this accessory.
The supported list is:
Key | Action |
---|---|
"f0" | Perform action "0" (Off) |
"f1" | Perform action "1" (On) |
"g0" | Set accessory state to Off |
"g1" | Set accessory state to On |
Refer to State Inputs for more detail and examples.
ICMP Ping inputs "p[n]"
and "q[n]"
are supported by this accessory.
The supported list is:
Key | Action |
---|---|
"p0" | Perform action "0" (Off) |
"p1" | Perform action "1" (On) |
"q0" | Set accessory state to Off |
"q1" | Set accessory state to On |
Refer to ICMP Ping Inputs for more detail.
The Initial State key is supported by this accessory.
Refer to Initial State for details
of the available values.
The initial state that a switch enters on boot can be set using the "s"
option.
Home Accessory Architect
Home Accessory
Installation
Setup Mode
HAA Home Manager App
Configuration
About
General
| GPIOs Configuration
Accessory
| Actions
Service Types
Air Quality
Battery
Data History
Fan
Free Monitor
Garage Door
HAA iAirZoning
Heater Cooler
Humidifier
Light Sensor
Lightbulb
Lock Mechanism
Sensors
Power Measure
Security System
Stateless Button & Doorbell
Switch & Outlet
Temperature & Humidity
TV
Water Valve
Window Covering