swttt / com.swttt.homekit

Homekit for Homey
https://apps.athom.com/app/com.swttt.homekit
GNU Affero General Public License v3.0
35 stars 20 forks source link

Implement TV support #126

Open robertklep opened 5 years ago

robertklep commented 5 years ago

From iOS 12.2 onward, TV devices are supported by HomeKit:

https://github.com/KhaosT/HAP-NodeJS/blob/master/accessories/TV_accessory.js

jahnkenneth commented 5 years ago

Any updates on this? :-) Have added my Samsung TV to Homey, and HomeyKit exposes it as a switch... Would be cool if it was exposed as a TV :-D

robertklep commented 5 years ago

Nothing yet, been busy with other things.

Don't get your hopes up though: we also implemented Speaker support, but it looks like it only works with a very limited number of speakers. For the rest of the users, it's being shown as "Unsupported", at least in the official iOS app.

robertklep commented 5 years ago

According to this page, it looks like this requires a specific implementation for each TV model, which will make implementing support for this very difficult.

lukasj98 commented 2 years ago

but you could implement it for ir when tv is controlled via ir

lukasj98 commented 2 years ago
class | tv -- | -- Driver | homey:manager:vdevice — infraredbasic Ready | Yes Available | Yes Warning | No Custom icon | No

Capabilities
ID | Title | Type | Value | Set Value | Last Changed -- | -- | -- | -- | -- | -- onoff | Eingeschaltet | boolean | null | truefalseSETUNSET |   button.power_on | Power on | boolean | null | truefalseSETUNSET |   button.power_off | Power off | boolean | null | truefalseSETUNSET |   button.input_av1 | Input AV1 | boolean | null | truefalseSETUNSET |   button.input_av2 | Input AV2 | boolean | null | truefalseSETUNSET |   button.input_antenna_1 | Input antenna 1 | boolean | null | truefalseSETUNSET |   button.input_component_1 | Input component 1 | boolean | null | truefalseSETUNSET |   button.input_component_2 | Input component 2 | boolean | null | truefalseSETUNSET |   button.input_hdmi_1 | Input HDMI 1 | boolean | null | truefalseSETUNSET |   button.input_hdmi_antenna_toggle | Input HDMI antenna toggle | boolean | null | truefalseSETUNSET |   button.input_hdmi_2 | Input HDMI 2 | boolean | null | truefalseSETUNSET |   button.input_hdmi_3 | Input HDMI 3 | boolean | null | truefalseSETUNSET |   button.input_pc_antenna_toggle | Input PC antenna toggle | boolean | null | truefalseSETUNSET |   button.input_s_video_1 | Input S-Video 1 | boolean | null | truefalseSETUNSET |   button.input_s_video_2 | Input S-Video 2 | boolean | null | truefalseSETUNSET |   button.input_usb_wiselink | Input USB wiselink | boolean | null | truefalseSETUNSET |   button.picture_mode_dynamic | Picture mode dynamic | boolean | null | truefalseSETUNSET |   button.picture_mode_movie | Picture mode movie | boolean | null | truefalseSETUNSET |   button.picture_mode_standard | Picture mode standard | boolean | null | truefalseSETUNSET |   button.format_16:9 | Format 16:9 | boolean | null | truefalseSETUNSET |   button.format_4:3 | Format 4:3 | boolean | null | truefalseSETUNSET |   button.input_antenna | Input antenna | boolean | null | truefalseSETUNSET |   button.digit_1 | Digit 1 | boolean | null | truefalseSETUNSET |   button.digit_2 | Digit 2 | boolean | null | truefalseSETUNSET |   button.digit_3 | Digit 3 | boolean | null | truefalseSETUNSET |   button.digit_4 | Digit 4 | boolean | null | truefalseSETUNSET |   button.digit_5 | Digit 5 | boolean | null | truefalseSETUNSET |   button.digit_6 | Digit 6 | boolean | null | truefalseSETUNSET |   button.digit_7 | Digit 7 | boolean | null | truefalseSETUNSET |   button.digit_8 | Digit 8 | boolean | null | truefalseSETUNSET |   button.digit_9 | Digit 9 | boolean | null | truefalseSETUNSET |   button.digit_0 | Digit 0 | boolean | null | truefalseSETUNSET |   channel_up | Kanal hoch | boolean | null | truefalseSETUNSET |   channel_down | Kanal runter | boolean | null | truefalseSETUNSET |   volume_up | Lautstärke hoch | boolean | null | truefalseSETUNSET |   volume_down | Lautstärke runter | boolean | null | truefalseSETUNSET |   button.previous_channel | Previous channel | boolean | null | truefalseSETUNSET |   button.menu_main | Menu main | boolean | null | truefalseSETUNSET |   button.cursor_up | Cursor up | boolean | null | truefalseSETUNSET |   button.cursor_down | Cursor down | boolean | null | truefalseSETUNSET |   button.cursor_right | Cursor right | boolean | null | truefalseSETUNSET |   button.cursor_left | Cursor left | boolean | null | truefalseSETUNSET |   button.enter | Enter | boolean | null | truefalseSETUNSET |   button.exit | Exit | boolean | null | truefalseSETUNSET |   button.cc | CC | boolean | null | truefalseSETUNSET |   button.format_wide | Format wide | boolean | null | truefalseSETUNSET |   button.format_panorama | Format panorama | boolean | null | truefalseSETUNSET |   button.picture_mode_custom | Picture mode custom | boolean | null | truefalseSETUNSET |   button.format_scroll | Format scroll | boolean | null | truefalseSETUNSET |   button.pip | Pip | boolean | null | truefalseSETUNSET |   button.pip_swap | Pip swap | boolean | null | truefalseSETUNSET |   button.pip_position | Pip position | boolean | null | truefalseSETUNSET |   button.pip_input | Pip input | boolean | null | truefalseSETUNSET |   button.digit_100 | Digit 100 | boolean | null | truefalseSETUNSET |   button.pip_size | Pip size | boolean | null | truefalseSETUNSET |   button.sound | Sound | boolean | null | truefalseSETUNSET |   button.mute_toggle | Mute toggle | boolean | null | truefalseSETUNSET |   button.input_hdmi_4 | Input HDMI 4 | boolean | null | truefalseSETUNSET |   button.function_blue | Function blue | boolean | null | truefalseSETUNSET |   button.function_green | Function green | boolean | null | truefalseSETUNSET |   button.function_red | Function red | boolean | null | truefalseSETUNSET |   button.function_yellow | Function yellow | boolean | null | truefalseSETUNSET |   button.mts_sap | Mts sap | boolean | null | truefalseSETUNSET |   button.return | Return | boolean | null | truefalseSETUNSET |   button.sleep | Sleep | boolean | null | truefalseSETUNSET |   button.srs | Srs | boolean | null | truefalseSETUNSET |   button.info | Info | boolean | null | truefalseSETUNSET |   button.pip_channel_down | Pip channel down | boolean | null | truefalseSETUNSET |   button.pip_channel_up | Pip channel up | boolean | null | truefalseSETUNSET |   button.content | Content | boolean | null | truefalseSETUNSET |   button.format_14:9 | Format 14:9 | boolean | null | truefalseSETUNSET |   button.input_s_video_3 | Input S-Video 3 | boolean | null | truefalseSETUNSET |   button.format_auto | Format auto | boolean | null | truefalseSETUNSET |   button.input_ieee_1 | Input ieee 1 | boolean | null | truefalseSETUNSET |   button.input_ieee_2 | Input ieee 2 | boolean | null | truefalseSETUNSET |   button.input_ieee_3 | Input ieee 3 | boolean | null | truefalseSETUNSET |   button.tools | Tools | boolean | null | truefalseSETUNSET |   button.anynet | Anynet | boolean | null | truefalseSETUNSET |   button.input_vga_1 | Input VGA 1 | boolean | null | truefalseSETUNSET |   button.input_vga_2 | Input VGA 2 | boolean | null | truefalseSETUNSET |   button.v_chip | V chip | boolean | null | truefalseSETUNSET |   button.surround | Surround | boolean | null | truefalseSETUNSET |   button.input_dvi_1 | Input DVI 1 | boolean | null | truefalseSETUNSET |   button.input_video_1 | Input video 1 | boolean | null | truefalseSETUNSET |   button.input_video_2 | Input video 2 | boolean | null | truefalseSETUNSET |   button.input_video_3 | Input video 3 | boolean | null | truefalseSETUNSET |   button.freeze | FreEZe | boolean | null | truefalseSETUNSET |   button.channel_add_delete | Channel add delete | boolean | null | truefalseSETUNSET |   button.display | Display | boolean | null | truefalseSETUNSET |   button.picture | Picture | boolean | null | truefalseSETUNSET |   button.dnie_toggle | Dnie toggle | boolean | null | truefalseSETUNSET |   button.input_component_3 | Input component 3 | boolean | null | truefalseSETUNSET |   button.input_dvi_2 | Input DVI 2 | boolean | null | truefalseSETUNSET |   button.tv | TV | boolean | null | truefalseSETUNSET |   button.dtv | DTV | boolean | null | truefalseSETUNSET |   button.input_anynet | Input anynet | boolean | null | truefalseSETUNSET |   button.picture_mode_user_1 | Picture mode user 1 | boolean | null | truefalseSETUNSET |   button.picture_mode_user_2 | Picture mode user 2 | boolean | null | truefalseSETUNSET |   button.picture_mode_user_3 | Picture mode user 3 | boolean | null | truefalseSETUNSET |   button.picture_mode_movie_1 | Picture mode movie 1 | boolean | null | truefalseSETUNSET |   button.picture_mode_movie_2 | Picture mode movie 2 | boolean | null | truefalseSETUNSET |   button.format_zoom_1 | Format zoom 1 | boolean | null | truefalseSETUNSET |   button.format_zoom_2 | Format zoom 2 | boolean | null | truefalseSETUNSET |   button.digit_separator | Digit separator | boolean | null | truefalseSETUNSET |   button.input_scroll | Input scroll | boolean | null | truefalseSETUNSET |   button.internet | Internet | boolean | null | truefalseSETUNSET |   button.media_play | Media play | boolean | null | truefalseSETUNSET |   button.favorite | FAVorite | boolean | null | truefalseSETUNSET |   button.e_mode | E mode | boolean | null | truefalseSETUNSET |   button.channel_list | Channel list | boolean | null | truefalseSETUNSET |   button.dma | Dma | boolean | null | truefalseSETUNSET |   button.info_link | Info link | boolean | null | truefalseSETUNSET |   button.auto_program | Auto program | boolean | null | truefalseSETUNSET |   button.r_surf | R surf | boolean | null | truefalseSETUNSET |   button.turbo_sound | Turbo sound | boolean | null | truefalseSETUNSET |   button.game | Game | boolean | null | truefalseSETUNSET |   button.3d | 3D | boolean | null | truefalseSETUNSET |   button.yahoo_hot_apps | Yahoo hot apps | boolean | null | truefalseSETUNSET |   button.clock_set | Clock set | boolean | null | truefalseSETUNSET |   button.cursor_enter | Cursor enter | boolean | null | truefalseSETUNSET |   button.smart_hub | Smart hub | boolean | null | truefalseSETUNSET |   button.social_tv | Social TV | boolean | null | truefalseSETUNSET |   button.e_manual | E manual | boolean | null | truefalseSETUNSET |   button.previous | Previous | boolean | null | truefalseSETUNSET |   button.pause | Pause | boolean | null | truefalseSETUNSET |   button.play | Play | boolean | null | truefalseSETUNSET |   button.next | Next | boolean | null | truefalseSETUNSET |   button.record | Record | boolean | null | truefalseSETUNSET |   button.stop | Stop | boolean | null | truefalseSETUNSET |   button.forward_next | Forward/next | boolean | null | truefalseSETUNSET |   button.reverse_previous | Reverse/previous | boolean | null | truefalseSETUNSET |   button.guide | Guide | boolean | null | truefalseSETUNSET |   button.family_story | Family story | boolean | null | truefalseSETUNSET |   button.support | Support | boolean | null | truefalseSETUNSET |   button.teletext | Teletext | boolean | null | truefalseSETUNSET |   button.teletext_cancel | Teletext cancel | boolean | null | truefalseSETUNSET |   button.teletext_hold | Teletext hold | boolean | null | truefalseSETUNSET |   button.teletext_index | Teletext index | boolean | null | truefalseSETUNSET |   button.teletext_mode | Teletext mode | boolean | null | truefalseSETUNSET |   button.teletext_next_page | Teletext next page | boolean | null | truefalseSETUNSET |   button.teletext_previous_page | Teletext previous page | boolean | null | truefalseSETUNSET |   button.teletext_reveal | Teletext reveal | boolean | null | truefalseSETUNSET |   button.teletext_size | Teletext size | boolean | null | truefalseSETUNSET |   button.teletext_store | Teletext store | boolean | null | truefalseSETUNSET |   button.teletext_sub_page | Teletext sub page | boolean | null | truefalseSETUNSET |   button.history | History | boolean | null | truefalseSETUNSET |   button.camera | Camera | boolean | null | truefalseSETUNSET |   button.menu_digital_tuner | Menu digital tuner | boolean | null | truefalseSETUNSET |   button.add_delete | Add/delete | boolean | null | truefalseSETUNSET |   button.energy_saving | Energy sAVing | boolean | null | truefalseSETUNSET |   button.browser | Browser | boolean | null | truefalseSETUNSET |   button.recomended_second_press | Recomended/second press | boolean | null | truefalseSETUNSET |   button.bluetooth_scan | Bluetooth scan | boolean | null | truefalseSETUNSET |   button.netflix | Netflix | boolean | null | truefalseSETUNSET |   button.amazon | Amazon | boolean | null | truefalseSETUNSET |   button.recomend | Recomend | boolean | null | truefalseSETUNSET |   button.more | More | boolean | null | truefalseSETUNSET |   button.search | Search | boolean | null | truefalseSETUNSET |   button.status | Status | boolean | null | truefalseSETUNSET |   button.dts_trusound | Dts trusound | boolean | null | truefalseSETUNSET |   button.blank | Blank | boolean | null | truefalseSETUNSET |   button.lock | Lock | boolean | null | truefalseSETUNSET |   button.magic_info | Magic info | boolean | null | truefalseSETUNSET |   button.magic_info_lite | Magic info lite | boolean | null | truefalseSETUNSET |   button.sports | Sports | boolean | null | truefalseSETUNSET |   button.extra | Extra | boolean | null | truefalseSETUNSET |   button.help | Help | boolean | null | truefalseSETUNSET |   button.input_amazon_prime | Input amazon prime | boolean | null | truefalseSETUNSET |   button.input_av3 | Input AV3 | boolean | null | truefalseSETUNSET |   button.input_dtv | Input DTV | boolean | null | truefalseSETUNSET |   button.input_game | Input game | boolean | null | truefalseSETUNSET |   button.input_pc1 | Input PC1 | boolean | null | truefalseSETUNSET |   button.input_pc2 | Input PC2 | boolean | null | truefalseSETUNSET |   button.input_usb | Input USB | boolean | null | truefalseSETUNSET |   button.menu_home | Menu home | boolean | null | truefalseSETUNSET |   button.3_speed | 3 speed | boolean | null | truefalseSETUNSET |   button.dts | Dts | boolean | null | truefalseSETUNSET |   button.input_bluetooth | Input bluetooth | boolean | null | truefalseSETUNSET |   button.exit_app | Exit app | boolean | null
lukasj98 commented 2 years ago

that would be awesome. Hope you can help. Because Homekit is able to control tvs but currently it is displayed as a switch but the homey class is tv

robertklep commented 2 years ago

That might be doable, I'll look at it when I have some spare time 👍🏻

lukasj98 commented 2 years ago

Homekit does now support most tv functions and has a TV UI so it would be awesome if you could implement this so that it is recognized as a tv with all functions

here you can see that homekit has a UI for TV's: Screenshot (16)

robertklep commented 2 years ago

Homekit does now support most tv functions

But Homey doesn't. I can probably implement some button support, but don't count on channel pickers and stuff like that.

lukasj98 commented 2 years ago

Hope much functions work because in homey I can switch channels with numbers

lukasj98 commented 2 years ago

Any news?

robertklep commented 2 years ago

Sure: I have a lot of other things to do, so don't expect updates any time soon.

lukasj98 commented 2 years ago

Ok I hope you will do it

lukasj98 commented 2 years ago

?