当前位置: 首页 > 软件库 > 其他开源 > 物联网 >

homebridge-vieramatic

授权协议 Apache-2.0 License
开发语言 JavaScript
所属分类 其他开源、 物联网
软件类型 开源软件
地区 不详
投 递 者 马才
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

homebridge-vieramatic - the Homebridge plugin for Panasonic™ Viera™ TVs

features

  • full support for 2018 and later models

    Pin code and encryption (encapsulated in AES-CBC-128 encryption withHMAC-SHA-256) was added as a requirement for communication with TV modelsreleased on and after 2018 which has broken previously existing plugins.

    Please do note that older models are still supported too, as first class citizens.

  • HomeKit TV Accessory
  • Power TV On & Off
  • Input switching
  • Automated TV Apps handling
  • Fully configurable via the Homebridge UI. No more need to manually edit homebridge'sconfig.json nor to run shell commands.

requirements

  • iOS 12.3 or later

  • Homebridge v1.3.0 or later (since homebridge-vieramatic@3.0.0)

    before upgrading to Homebridge v1.3.0 check please itsChangeLogspecially the breakingchangessection in order to see if anything there applies to your particular setup.

TV setup

  1. On your TV go to Menu -> Network -> TV Remote App Settings and make sure that the following settings are all turned ON:

    • TV Remote
    • Powered On by Apps
    • Networked Standby
  2. Then, go to Menu -> Network -> Network Status -> Status Details and take note of your TV ip address.

plugin setup

the simple way [recommended]

  1. Get homebridge.

  2. install the homebridge UI,if not using it already.

  3. From your browser, access the homebridge's ui, and jump to the plugins tab.

    there, search for vieramatic, and install it.

  4. Restart homebridge

  5. Go again to the plugins tab, and click on 'settings' from this plugin.

  6. Just follow the instructions and that's it.

  7. If for some reason, things do not progress as expected, it is probably a bug.Please just report it.

the old fashioned way

  1. Get homebridge.

  2. Install this plugin

    $ sudo npm install -g homebridge-vieramatic
  3. run the pre-flight setup script, and take note of the output

    $ viera-pair YOUR_TV_IP_ADDRESS_HERE
  4. Update your homebridge's config.json file per the output of viera-pair in the step above.

  5. Populate the hdmiInputs section according to your input switching list.

    "platforms": [
       {
          "platform": "PanasonicVieraTV",
          "tvs": [
             {
               "friendlyName": "YOUR_TV_NAME_HERE",
               "ipAddress": "YOUR_TV_IP_ADDRESS_HERE",
               "hdmiInputs": [
                 {
                   "id" : "1",
                   "name": "Apple TV"
                 }, {
                   "id" : "2",
                   "name": "VodafoneTV box"
                 },
               ]
             }
          ]
       }
    ]
    • please do note that if have more than one TV you add its config to the tvs array and not asa whole platform duplicate, along the example bellow...

      "tvs": [
        {
          "friendlyName": "YOUR_TV_NAME_HERE",
          "ipAddress": "YOUR_TV_IP_ADDRESS_HERE",
          "hdmiInputs": []
        }, {
          "friendlyName": "YOUR_TV_NAME_HERE",
          "ipAddress": "YOUR_SECOND_TV_IP_ADDRESS_HERE",
          "hdmiInputs": []
        }
      ]
  6. disable the custom volume slider (optional)

    By default each TV will appear on HomeKit with an additional volume slider (of Fan type) in orderto provide a visual way to control the volume (in addition to the hardwarevolume controls)

    In order to disable this feature, for each defined TV, just add

    "customVolumeSlider": false,
  7. [re]start homebridge

tips and tricks

TV naming

If you'd prefer for Vieramatic to automatically detect and consume the name on your TV, then you can remove the tvName field from your config.

Your config.json file will look like this:

"tvs": [
  {
    "ipAddress": "YOUR_TV_IP_ADDRESS_HERE",
    "friendlyName": "OPTIONAL_CUSTOMIZED_TV_NAME_HERE",
    "hdmiInputs": [
      {
        "id" : "1",
        "name": "Apple TV"
      }, {
        "id" : "2",
        "name": "VodafoneTV box"
      }
]

supported TV sets

This plugin should support ALL the TV models supported by Panasonic's own "Panasonic TV Remote TV 3"mobile app (IOS install link andAndroid install link).

So, if experiencing setup problems, do make sure, in advance, that the TV is discoverable/manageable by the mobileapp while connected to the exact same network as your homebridge setup, because if it isn't there's not much that theplugin could do.

some older sets became unreachable from the network either immediatelyafter entering into stand-by, or after a while, and a subset of those setssupports being awaken via 'Wake On Lan'.If your set is one of those, you'll need to specify your TVs MAC address,either via the Homebridge UI's or directly into the TV's definition inhomebridge's config.json along:

"tvs": [
    {
      "ipAddress": "YOUR_TV_IP_ADDRESS_HERE",
       (...)
      "mac": "YOUR_TV_MAC_ADDRESS",
      (...)
     }
   ]

so that the the plugin could turn the TV ON.

Disabling TV app support in very old TV sets

Early Panasonic SmartTVs APis either didn't expose TV apps using the current APIor simply lacked that functionality at all. So, in order to support those sets anew options was added in 2.0.16 that allows the plugin's support for TV's appsto be disabled. For each affected TV just add to its' section (inconfig.json), or (preferable) turn that option ON via homebridge's config UI.

"disabledAppSupport": true,

How to power on TV on (very old) unsupported TV sets

On some TVs, WoL (wakeup from lan) functionality is not even available, but asimilar effect can can be achieved by using taking advantage of plain CEChdmi.

Requirements

  • Your homebridge device will need to be connected to your TV via HDMI.

  • You will need to available a script executor for Homebridge (Script2 is used inthis guide). Install it per npm install -g homebridge-script2

  • You will need to have available in your homebridge host cec-client.

    on a Raspberry Pi running Raspbian cec-client is provided by havinginstalled the cec-utils package

  • You will need to activate CEC-HDMI on your TV (the system that automaticallyturns the TV on or off if an hdmi device is turned on or off). You will alsoneed to ensure that, on boot, the homebridge host does not turnon the TV, or change its' HDMI source input (to it).

    On a rPI (per here)you'll achieve that goal by adding the hdmi_ignore_cec_init=1 config optionto your /boot/config.txt.

script snippets

adapt absolute paths accordingly to your local setup and mod name fromdefault ("TV ON/OFF") bellow to whatever suits you best.

  • homebridge.conf

    {
       "accessory": "Script2",
       "name": "TV ON/OFF",
       "on": "/var/homebridge/TV-ON-OFF/on.sh",
       "off": "/var/homebridge/TV-ON-OFF/off.sh",
       "state": "/var/homebridge/TV-ON-OFF/state.sh",
       "on_value": "ON",
       "unique_serial": "1234568"
    },
  • /var/homebridge/TV-ON-OFF/on.sh

    #!/bin/sh
    echo 'on 0' | cec-client -s -d 1 && echo "ON"
  • /var/homebridge/TV-ON-OFF/off.sh

#!/bin/bash
echo 'standby 0' | cec-client -s -d 1 && echo "OFF"

/var/homebridge/TV-ON-OFF/state.sh

  • #!/bin/bash
    state=$(echo 'pow <DEVICE #>' | cec-client -s -d 1)
    if [[ $state == *" on"* ]]; then
       echo "ON"
    else
       echo "OFF"
    fi

    restart homebridge and You should now have TV ON/OFF capabilities exposed toyour HomeKit setup.

input switching - how to get Siri to do it

As far as the author knows, currently, the HomeKit TV integration spec from Apple sadly doesnot allow to switch inputs with Siri directly (would love to be proven wrong).

The workaround is either to make shortcuts that do the input change and invoke those from Siri,or to create scenes straight in the home app that achieve the same and then invoke them.

regarding containerized homebridge setups

If your homebridge setup is a containerized one please do note that in order for this plugin to fullywork you need to also expose to the outside port 8973, otherwise you won't be able to access to endpoint thatgenerates your encryption credentials.

upgrading from pre 2.0.0 releases of this plugin

The upgrade should be transparent, and painless.

The only expected side effect is that you'll need to set again the visibility of your inputs and apps as they 'll get backto the defaults. If you experience other kinds if issues then it is a bug so, pleasereport it with as much context as possible.

contributing

Contributionsand suggestions or bug reportsare gladly welcomed!

licensing

This is an open source project released under the Apache License 2.0.

acknowledgments

  • George Nick Gorzynski's homebridge-panasonicplugin which served as the base inspiration for this new one.
  • Florian Holzapfel's panasonic-vierapython library which documented the new pin code authentication and communication scheme of 2018 and later models.
  • the Homebridge community at large without whom this wouldn't just be possible.
 相关资料
  • Homebridge 是一个轻量级 NodeJS 服务器,它模拟 iOS HomeKit API,提供从 HomeKit 到“智能家居”设备制造商提供的各种第三方 API 的基本桥接。通过 Homebridge 的桥接,可以让 Siri 控制完全不支持 HomeKit 的设备。 此外 Homebridge 支持插件。

  • homebridge-vsx homebridge-vsx is a plugin made for homebridge,which allows switching on and off your Pioneer AV receiver. All AV receivers (VSX and SC),which work with the iControl AV5 App are support

  • homebridge-sesame Control and monitor your Sesame smart lock with HomeKit integration. Prerequisites Installation of Homebridge iOS 11 or later Sesame lock with enabled cloud integration Sesame Wifi A

  • homebridge-panasonictv A homebridge plugin for turning on and off your Panasonic Viera TV. The plugin also has experimental support for changing the volume and channel. These characteristics are not r

  • Quick Start | Contribute A Wake on Lan plugin for Homebridge Turn your PCs, laptops, servers and more on and off through Siri Quick Start To install the plugin, head over to the machine with Homebridg

  • Docker Homebridge This Alpine/Ubuntu Linux based Docker image allows you to run Nfarina's Homebridge on your home network which emulates the iOS HomeKit API. This is a multi-arch image and will also r