Updated external content (Jenkins build 1597)

pull/2109/head
openHAB Build Server 2023-07-15 14:18:40 +00:00
parent 67a7ac2254
commit 2814c57039
7 changed files with 527 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -138,16 +138,46 @@ You may also send it a command of the app package name (e.g. com.google.android.
KEYCODE values are listed at the bottom of this README.
NOTE: Not all KEYCODES work on all devices. Keycodes above 255 have not been tested.
## Command Line Access
All String type channels may receive commands from inside the karaf cli, even if there are no items configured.
This can be particularly useful for the Pin Code Process as well as for testing.
Syntax:
```shell
openhab> openhab:androidtv <thingUID> <channel> <command>
```
Example usage:
```shell
openhab> openhab:androidtv androidtv:googletv:theater keypress KEY_POWER
```
## Pin Code Process
For the AndroidTV to be successfully accessed an on-screen PIN authentication is required on the first connection.
To begin the PIN process, send the text "REQUEST" to the pincode channel while watching your AndroidTV.
CLI Example Usage:
```shell
openhab> openhab:androidtv androidtv:googletv:theater pincode REQUEST
```
A 6 digit PIN should be displayed on the screen.
To complete the PIN process, send the PIN displayed to the pincode channel.
CLI Example Usage:
```shell
openhab> openhab:androidtv androidtv:googletv:theater pincode abc123
```
The display should return back to where it was originally.
If you are on a ShieldTV you must run that process a second time to authenticate the GoogleTV protocol stack.

View File

@ -0,0 +1,105 @@
---
id: asuswrt
label: Asuswrt
title: Asuswrt - Bindings
type: binding
description: "This binding adds support to read information from ASUS-Routers (Copyright © ASUS)."
since: 3x
install: auto
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Asuswrt Binding
This binding adds support to read information from ASUS-Routers (Copyright © ASUS).
## Supported Things
This binding supports ASUS routers with Asuswrt or [Asuswrt-Merlin](https://www.asuswrt-merlin.net/) firmware.
Firmware 5.x.x (some DSL models) is NOT supported (not Asuswrt).
| ThingType | Name | Descripion |
|---------------|------------|--------------------------------------|
| bridge | router | Router to which the binding connects |
| - | interface | Network interface of the router |
| - | client | Client is connected to the bridge |
### `router` Thing Configuration
| Name | Type | Description | Default | Required | Advanced |
|-----------------|---------|---------------------------------------|---------------------|----------|----------|
| hostname | text | Hostname or IP address of the device | router.asus.com | yes | no |
| username | text | Username to access the device | N/A | yes | no |
| password | text | Password to access the device | N/A | yes | no |
| useSSL | boolean | Connect over SSL or use http:// | false | no | no |
| refreshInterval | integer | Interval the device is polled in sec. | 20 | no | yes |
| httpPort | integer | HTTP-Port | 80 | no | yes |
| httpsPort | integer | HTTPS-Port | 443 | no | yes |
### `interface` Thing Configuration
| Name | Type | Description | Default | Required | Advanced |
|-----------------|---------|---------------------------------------|---------------------|----------|----------|
| interfaceName | text | options name of interface (wan/lan) | N/A | yes | no |
### `client` Thing Configuration
| Name | Type | Description | Default | Required | Advanced |
|-----------------|---------|---------------------------------------|---------------------|----------|----------|
| macAddress | text | Unique MAC address of the device | N/A | yes | no |
| clientNick | text | Nickname used by OH | N/A | no | no |
## Properties
All devices support some of the following properties:
| property | description | things supporting this channel |
|------------------|------------------------------|---------------------------------------|
| vendor | Vendor of device | router, client |
| dnsName | DNS name of device | router, client |
## Channels
All devices support some of the following channels:
| group | channel |type | description | things supporting this channel |
|------------------|----------------------|------------------------|--------------------------------------------|-----------------------------------|
| network-info | mac-address | text (RO) | HW address | interface, client |
| | ip-address | text (RO) | IP address | interface |
| | ip-method | text (RO) | IP method (static/dhcp) | interface, client |
| | subnet | text (RO) | Subnetmask | interface |
| | gateway | text (RO) | Default gateway | interface |
| | dns-servers | text (RO) | DNS servers | interface |
| | network-state | Switch (RO) | Client is online | interface, client |
| | internet-state | Switch (RO) | Client connected to Internet | client |
| sys-info | mem-total | Number:DataAmountype | Total memory in MB | router |
| | mem-used | Number:DataAmountype | Used memory in MB | router |
| | mem-free | Number:DataAmountype | Free memory in MB | router |
| | mem-used-percent | Number:Dimensionles | Used memory in % | router |
| | cpu-used-percent | Number:Dimensionles | Total CPU usage in percent over all cores | router |
| client-list | known-clients | text (RO) | Known clients with name and MAC addresses | router |
| | online-clients | text (RO) | Online clients with name and MAC addresses | router |
| | online-macs | text (RO) | List with MAC addresses of online clients | router |
| | online-clients-count | Number:Dimensionless | Count of online clients | router |
| traffic | current-rx | Number:DataTransferRate| Current DataTransferRate MBits/s (receive) | interface, client |
| | current-tx | Number:DataTransferRate| Current DataTransferRate MBits/s (send) | interface, client |
| | today-rx | Number:DataAmount | Data received since 0:00 a clock in MB | interface, client |
| | today-tx | Number:DataAmount | Data sent since 0:00 a clock in MB | interface, client |
| | total-rx | Number:DataAmount | Data received since reboot in MB | interface, client |
| | total-tx | Number:DataAmount | Data sent since reboot in MB | interface, client |
## Events
All devices support some of the following Events:
| group | event |kind | description | things supporting this event |
|------------------|---------------------|------------|------------------------------------------------------------------------|---------------------------------|
| network-info | connection-event | Trigger | Fired if connection is established ('connected') or ('disconnected') | interface |
| | client-online-event | Trigger | Fired if client leaves ('gone') or enters ('connected') the network | client |
| client-list | client-online-event | Trigger | Fired if client leaves ('gone') or enters ('connected') the network | router |

View File

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="asuswrt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- ####################### GLOBAL CHANNEL GROUPS ########################## -->
<!-- Traffic -->
<channel-group-type id="traffic-group">
<label>Traffic</label>
<description>Traffic Monitoring</description>
<channels>
<channel id="cur-rx" typeId="current-traffic-type">
<label>Current Traffic Received</label>
</channel>
<channel id="cur-tx" typeId="current-traffic-type">
<label>Current Traffic Sent</label>
</channel>
<channel id="today-rx" typeId="today-taffic-type">
<label>Today Traffic Received</label>
</channel>
<channel id="today-tx" typeId="today-taffic-type">
<label>Today Traffic Sent</label>
</channel>
<channel id="total-rx" typeId="total-traffic-type">
<label>Total Traffic Received</label>
</channel>
<channel id="total-tx" typeId="total-traffic-type">
<label>Total Traffic Sent</label>
</channel>
</channels>
</channel-group-type>
<!-- ############################### CHANNELS ############################### -->
<!-- Product Id -->
<channel-type id="productid">
<item-type>String</item-type>
<label>Router Model</label>
<description>Model/ProductID of your Router</description>
</channel-type>
<!-- Usage -->
<channel-type id="usage-data-type">
<item-type>Number:DataAmount</item-type>
<label>Usage in MB</label>
<state pattern="%.0f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="usage-type-percent">
<item-type>Number:Dimensionless</item-type>
<label>Percentage</label>
<state pattern="%.1f %unit%" readOnly="true"></state>
</channel-type>
<!-- LAN/WAN INFO -->
<channel-type id="dns-name-type">
<item-type>String</item-type>
<label>DNS Name</label>
<description>DNS name</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="dns-server-type">
<item-type>String</item-type>
<label>DNS Server</label>
<description>Used DNS Servers</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="ip-address-type">
<item-type>String</item-type>
<label>IP Address</label>
<description>IP address of interface</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="ip-proto-type">
<item-type>String</item-type>
<label>IP Protocol</label>
<description>IP address protocol (DHCP/Static)</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="mac-address-type">
<item-type>String</item-type>
<label>MAC Address</label>
<description>MAC address of device (LAN)</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="ip-netmask-type">
<item-type>String</item-type>
<label>Subnet</label>
<description>Subnet mask of interface</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="ip-gateway-type">
<item-type>String</item-type>
<label>Gateway</label>
<description>Gateway of interface</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="ip-connection-state">
<item-type>Switch</item-type>
<label>Connected</label>
<description>Connection state of interface</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="connection-event-type">
<kind>Trigger</kind>
<label>ConnectionState Changed Event</label>
<description>Event is fired connection state changes ('connected'/'disconnected')</description>
</channel-type>
<!-- CLIENTS -->
<channel-type id="clients-online-type">
<item-type>String</item-type>
<label>Online Clients</label>
<description>List of online clients</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="clients-online-mac-type">
<item-type>String</item-type>
<label>Online MAC Addresses</label>
<description>List with MAC addresses of online clients</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="clients-online-count-type">
<item-type>Number:Dimensionless</item-type>
<label>Online Clients Count</label>
<description>number online clients</description>
<state pattern="%.0f" readOnly="true"></state>
</channel-type>
<channel-type id="client-nick-name">
<item-type>String</item-type>
<label>Nickname</label>
<description>Nickname of client</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="is-online-type">
<item-type>Switch</item-type>
<label>Online</label>
<description>Client is online</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="interne-state-type">
<item-type>Switch</item-type>
<label>Internet Connected</label>
<description>Client is connected to Internet</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="client-online-event-type">
<kind>Trigger</kind>
<label>Online State Changed Trigger</label>
<description>Event is fired if client leaves ('gone') or enters ('connected') the network</description>
</channel-type>
<!-- Traffic -->
<channel-type id="current-traffic-type">
<item-type>Number:DataTransferRate</item-type>
<label>Current Traffic</label>
<description>Current traffic in MBit/s</description>
<state pattern="%.2f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="today-taffic-type">
<item-type>Number:DataAmount</item-type>
<label>Today Traffic</label>
<description>Total traffic in MB since 0:00 a clock</description>
<state pattern="%.0f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="total-traffic-type">
<item-type>Number:DataAmount</item-type>
<label>Total Traffic</label>
<description>Total traffic in MB since reboot</description>
<state pattern="%.0f %unit%" readOnly="true"></state>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="asuswrt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- Router Thing Type -->
<thing-type id="client">
<supported-bridge-type-refs>
<bridge-type-ref id="router"/>
</supported-bridge-type-refs>
<label>Asuswrt Client</label>
<description>Client connected to Asuswrt-Router</description>
<channel-groups>
<channel-group id="network-info" typeId="clientNetworkGroup"></channel-group>
<channel-group id="traffic" typeId="traffic-group"></channel-group>
</channel-groups>
<properties>
<property name="vendor">Vendor</property>
<property name="dnsName">DNS Name</property>
</properties>
<representation-property>macAddress</representation-property>
<config-description>
<parameter name="macAddress" type="text" required="true">
<label>MAC Address</label>
<description>MAC address of the device</description>
<default>00:00:00:00:00:00</default>
</parameter>
<parameter name="clientNick" type="text" required="false">
<label>Nickname</label>
<description>Nickname of the device</description>
</parameter>
</config-description>
</thing-type>
<!-- ############################### CHANNEL-GROUPS ############################### -->
<channel-group-type id="clientNetworkGroup">
<label>Clients</label>
<description>Clients connected to router</description>
<channels>
<channel id="network-state" typeId="is-online-type"></channel>
<channel id="ip-address" typeId="ip-address-type">
<description>Client IP address</description>
</channel>
<channel id="ip-method" typeId="ip-proto-type"></channel>
<channel id="internet-state" typeId="interne-state-type"></channel>
<channel id="client-online-event" typeId="client-online-event-type"></channel>
</channels>
</channel-group-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="asuswrt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- Router Thing Type -->
<thing-type id="interface">
<supported-bridge-type-refs>
<bridge-type-ref id="router"/>
</supported-bridge-type-refs>
<label>Router Interface</label>
<description>Interface of router</description>
<channel-groups>
<channel-group id="network-info" typeId="if-info-group"></channel-group>
<channel-group id="traffic" typeId="traffic-group"></channel-group>
</channel-groups>
<representation-property>interfaceName</representation-property>
<config-description>
<parameter name="interfaceName" type="text" required="true">
<label>Interface Name</label>
<description>Name of selected interface. *Maybe not all are supported by your device*</description>
<options>
<option value="wan">WAN</option>
<option value="lan">LAN</option>
</options>
</parameter>
</config-description>
</thing-type>
<!-- ############################### CHANNEL-GROUPS ############################### -->
<!-- Interface Information -->
<channel-group-type id="if-info-group">
<label>LAN Status</label>
<description>LAN connection state</description>
<channels>
<channel id="mac-address" typeId="mac-address-type"></channel>
<channel id="ip-address" typeId="ip-address-type"></channel>
<channel id="ip-method" typeId="ip-proto-type"></channel>
<channel id="subnet" typeId="ip-netmask-type"></channel>
<channel id="gateway" typeId="ip-gateway-type"></channel>
<channel id="dns-servers" typeId="dns-server-type"></channel>
<channel id="network-state" typeId="ip-connection-state"></channel>
<channel id="connection-event" typeId="connection-event-type"></channel>
</channels>
</channel-group-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="asuswrt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- Router Thing Type -->
<bridge-type id="router">
<label>Asuswrt Router</label>
<description>Router with Asuswrt or Asuswrt-Merlin OS</description>
<channel-groups>
<channel-group id="sys-info" typeId="sys-info-group"></channel-group>
<channel-group id="client-list" typeId="client-list-group"></channel-group>
</channel-groups>
<config-description>
<parameter name="hostname" type="text" required="true">
<context>network-address</context>
<label>Hostname</label>
<description>Hostname or IP address of the device</description>
<default>router.asus.com</default>
</parameter>
<parameter name="username" type="text" required="true">
<label>Username</label>
<description>Username to access the device</description>
</parameter>
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Password</label>
<description>Password to access the device</description>
</parameter>
<parameter name="useSSL" type="boolean">
<label>Use SSL</label>
<description>Use SSL to authenticate. If not use HTTP</description>
<default>false</default>
</parameter>
<parameter name="httpPort" type="integer">
<label>HTTP Port</label>
<description>Port used for HTTP connection</description>
<default>80</default>
<advanced>true</advanced>
</parameter>
<parameter name="httpsPort" type="integer">
<label>HTTPS Port</label>
<description>Port used for HTTPS connection</description>
<default>443</default>
<advanced>true</advanced>
</parameter>
<parameter name="pollingInterval" type="integer" unit="s" min="3">
<label>Polling Interval</label>
<description>Interval the device is polled in sec.</description>
<default>20</default>
<advanced>true</advanced>
</parameter>
</config-description>
</bridge-type>
<!-- ############################### CHANNEL-GROUPS ############################### -->
<!-- System Information -->
<channel-group-type id="sys-info-group">
<label>System Info</label>
<description>System information about the device</description>
<channels>
<channel id="mem-total" typeId="usage-data-type">
<label>Total Memory</label>
<description>Total memory in MB</description>
</channel>
<channel id="mem-used" typeId="usage-data-type">
<label>Used Memory</label>
<description>Used memory in MB</description>
</channel>
<channel id="mem-free" typeId="usage-data-type">
<label>Free Memory</label>
<description>Free memory in MB</description>
</channel>
<channel id="mem-free-percent" typeId="usage-type-percent">
<label>Free Memory</label>
<description>Free memory in %</description>
</channel>
<channel id="mem-used-percent" typeId="usage-type-percent">
<label>Used Memory</label>
<description>Used memory in %</description>
</channel>
<channel id="cpu-used-percent" typeId="usage-type-percent">
<label>Total CPU Usage</label>
<description>Total CPU usage in percent over all cores</description>
</channel>
</channels>
</channel-group-type>
<!-- Clients -->
<channel-group-type id="client-list-group">
<label>Clients</label>
<description>Clients connected to router</description>
<channels>
<channel id="known-clients" typeId="clients-online-type">
<label>Known Clients</label>
<description>Known clients with name and MAC addresses</description>
</channel>
<channel id="online-clients" typeId="clients-online-type">
<description>Online clients with name and MAC addresses</description>
</channel>
<channel id="online-macs" typeId="clients-online-mac-type"></channel>
<channel id="online-clients-count" typeId="clients-online-count-type"></channel>
<channel id="client-online-event" typeId="client-online-event-type"></channel>
</channels>
</channel-group-type>
</thing:thing-descriptions>