Run pre-commit hooks over existing codebase

Co-Authored-By: Ben Phelps <ben@phelps.io>
This commit is contained in:
shamoon 2023-10-17 23:26:55 -07:00
parent fa50bbad9c
commit 19c25713c4
387 changed files with 4785 additions and 4109 deletions

View file

@ -9,9 +9,9 @@ Formatting is locale aware and will present your date in the regional format you
```yaml
- datetime:
text_size: xl
format:
timeStyle: short
text_size: xl
format:
timeStyle: short
```
Any options passed to `format` are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat), please reference the MDN documentation for all available options.
@ -23,29 +23,29 @@ A few examples,
```yaml
# 13:37
format:
timeStyle: short
hourCycle: h23
timeStyle: short
hourCycle: h23
```
```yaml
# 1:37 PM
format:
timeStyle: short
hour12: true
timeStyle: short
hour12: true
```
```yaml
# 1/23/22, 1:37 PM
format:
dateStyle: short
timeStyle: short
hour12: true
dateStyle: short
timeStyle: short
hour12: true
```
```yaml
# 4 januari 2023 om 13:51:25 PST
locale: nl
format:
dateStyle: long
timeStyle: long
dateStyle: long
timeStyle: long
```

View file

@ -9,16 +9,16 @@ The Glances widget allows you to monitor the resources (CPU, memory, storage, te
```yaml
- glances:
url: http://host.or.ip:port
username: user # optional if auth enabled in Glances
password: pass # optional if auth enabled in Glances
cpu: true # optional, enabled by default, disable by setting to false
mem: true # optional, enabled by default, disable by setting to false
cputemp: true # disabled by default
uptime: true # disabled by default
disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below)
expanded: true # show the expanded view
label: MyMachine # optional
url: http://host.or.ip:port
username: user # optional if auth enabled in Glances
password: pass # optional if auth enabled in Glances
cpu: true # optional, enabled by default, disable by setting to false
mem: true # optional, enabled by default, disable by setting to false
cputemp: true # disabled by default
uptime: true # disabled by default
disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below)
expanded: true # show the expanded view
label: MyMachine # optional
```
Multiple disks can be specified as:

View file

@ -7,8 +7,8 @@ This allows you to display simple text, can be configured like so:
```yaml
- greeting:
text_size: xl
text: Greeting Text
text_size: xl
text: Greeting Text
```
Valid text sizes are `4xl`, `3xl`, `2xl`, `xl`, `md`, `sm`, `xs`.

View file

@ -9,23 +9,23 @@ It provides CPU and Memory usage, by node and/or at the cluster level.
```yaml
- kubernetes:
cluster:
# Shows cluster-wide statistics
show: true
# Shows the aggregate CPU stats
cpu: true
# Shows the aggregate memory stats
memory: true
# Shows a custom label
showLabel: true
label: "cluster"
nodes:
# Shows node-specific statistics
show: true
# Shows the CPU for each node
cpu: true
# Shows the memory for each node
memory: true
# Shows the label, which is always the node name
showLabel: true
cluster:
# Shows cluster-wide statistics
show: true
# Shows the aggregate CPU stats
cpu: true
# Shows the aggregate memory stats
memory: true
# Shows a custom label
showLabel: true
label: "cluster"
nodes:
# Shows node-specific statistics
show: true
# Shows the CPU for each node
cpu: true
# Shows the memory for each node
memory: true
# Shows the label, which is always the node name
showLabel: true
```

View file

@ -12,18 +12,18 @@ It can show the aggregate metrics and/or the individual node metrics.
```yaml
- longhorn:
# Show the expanded view
expanded: true
# Shows a node representing the aggregate values
total: true
# Shows the node names as labels
labels: true
# Show the nodes
nodes: true
# An explicit list of nodes to show. All are shown by default if "nodes" is true
include:
- node1
- node2
# Show the expanded view
expanded: true
# Shows a node representing the aggregate values
total: true
# Shows the node names as labels
labels: true
# Show the nodes
nodes: true
# An explicit list of nodes to show. All are shown by default if "nodes" is true
include:
- node1
- node2
```
The Longhorn URL and credentials are stored in the `providers` section of the `settings.yaml`.

View file

@ -7,12 +7,12 @@ No registration is required at all! See [https://open-meteo.com/en/docs](https:/
```yaml
- openmeteo:
label: Kyiv # optional
latitude: 50.449684
longitude: 30.525026
timezone: Europe/Kiev # optional
units: metric # or imperial
cache: 5 # Time in minutes to cache API responses, to stay within limits
label: Kyiv # optional
latitude: 50.449684
longitude: 30.525026
timezone: Europe/Kiev # optional
units: metric # or imperial
cache: 5 # Time in minutes to cache API responses, to stay within limits
```
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).

View file

@ -7,13 +7,13 @@ The free tier "One Call API" is all thats required, you will need to [subscribe]
```yaml
- openweathermap:
label: Kyiv #optional
latitude: 50.449684
longitude: 30.525026
units: metric # or imperial
provider: openweathermap
apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests
cache: 5 # Time in minutes to cache API responses, to stay within limits
label: Kyiv #optional
latitude: 50.449684
longitude: 30.525026
units: metric # or imperial
provider: openweathermap
apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests
cache: 5 # Time in minutes to cache API responses, to stay within limits
```
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).

View file

@ -15,26 +15,26 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation]
```yaml
- resources:
cpu: true
memory: true
disk: /disk/mount/path
cputemp: true
uptime: true
units: imperial # only used by cpu temp
refresh: 3000 # optional, in ms
cpu: true
memory: true
disk: /disk/mount/path
cputemp: true
uptime: true
units: imperial # only used by cpu temp
refresh: 3000 # optional, in ms
```
You can also pass a `label` option, which allows you to group resources under named sections,
```yaml
- resources:
label: System
cpu: true
memory: true
label: System
cpu: true
memory: true
- resources:
label: Storage
disk: /mnt/storage
label: Storage
disk: /mnt/storage
```
Which produces something like this,
@ -45,11 +45,11 @@ If you have more than a single disk and would like to group them together under
```yaml
- resources:
label: Storage
disk:
- /mnt/storage
- /mnt/backup
- /mnt/media
label: Storage
disk:
- /mnt/storage
- /mnt/backup
- /mnt/media
```
To produce something like this,
@ -60,12 +60,12 @@ You can additionally supply an optional `expanded` property set to true in order
```yaml
- resources:
label: Array Disks
expanded: true
disk:
- /disk1
- /disk2
- /disk3
label: Array Disks
expanded: true
disk:
- /disk1
- /disk2
- /disk3
```
![194136533-c4238c82-4d67-41a4-b3c8-18bf26d33ac2](https://user-images.githubusercontent.com/3441425/194728642-a9885274-922b-4027-acf5-a746f58fdfce.png)

View file

@ -7,25 +7,25 @@ You can add a search bar to your top widget area that can search using Google, D
```yaml
- search:
provider: google # google, duckduckgo, bing, baidu, brave or custom
focus: true # Optional, will set focus to the search bar on page load
target: _blank # One of _self, _blank, _parent or _top
provider: google # google, duckduckgo, bing, baidu, brave or custom
focus: true # Optional, will set focus to the search bar on page load
target: _blank # One of _self, _blank, _parent or _top
```
or for a custom search:
```yaml
- search:
provider: custom
url: https://lougle.com/?q=
target: _blank
provider: custom
url: https://lougle.com/?q=
target: _blank
```
multiple providers is also supported via a dropdown (excluding custom):
```yaml
- search:
provider: [brave, google, duckduckgo]
provider: [brave, google, duckduckgo]
```
_Added in v0.1.6, updated in 0.6.0_

View file

@ -9,12 +9,12 @@ The free tier is all thats required, you will need to [register](https://www.wea
```yaml
- weatherapi:
label: Kyiv # optional
latitude: 50.449684
longitude: 30.525026
units: metric # or imperial
apiKey: yourweatherapikey
cache: 5 # Time in minutes to cache API responses, to stay within limits
label: Kyiv # optional
latitude: 50.449684
longitude: 30.525026
units: metric # or imperial
apiKey: yourweatherapikey
cache: 5 # Time in minutes to cache API responses, to stay within limits
```
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).

View file

@ -9,8 +9,8 @@ Allowed fields: `["queries", "blocked", "filtered", "latency"]`.
```yaml
widget:
type: adguard
url: http://adguard.host.or.ip
username: admin
password: password
type: adguard
url: http://adguard.host.or.ip
username: admin
password: password
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["series", "archives", "chapters", "categories"]`.
```yaml
widget:
type: atsumeru
url: http://atsumeru.host.or.ip:port
username: username
password: password
type: atsumeru
url: http://atsumeru.host.or.ip:port
username: username
password: password
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["podcasts", "podcastsDuration", "books", "booksDuration"]`
```yaml
widget:
type: audiobookshelf
url: http://audiobookshelf.host.or.ip:port
key: audiobookshelflapikey
type: audiobookshelf
url: http://audiobookshelf.host.or.ip:port
key: audiobookshelflapikey
```

View file

@ -18,7 +18,7 @@ Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`.
```yaml
widget:
type: authentik
url: http://authentik.host.or.ip:22070
key: api_token
type: authentik
url: http://authentik.host.or.ip:22070
key: api_token
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["approvedPushes", "rejectedPushes", "filters", "indexers"]`.
```yaml
widget:
type: autobrr
url: http://autobrr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: autobrr
url: http://autobrr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -15,12 +15,12 @@ You will need to generate a personal access token for an existing user, see the
```yaml
widget:
type: azuredevops
organization: myOrganization
project: myProject
definitionId: pipelineDefinitionId # required for pipelines
branchName: branchName # optional for pipelines, leave empty for all
userEmail: email # required for pull requests
repositoryId: prRepositoryId # required for pull requests
key: personalaccesstoken
type: azuredevops
organization: myOrganization
project: myProject
definitionId: pipelineDefinitionId # required for pipelines
branchName: branchName # optional for pipelines, leave empty for all
userEmail: email # required for pull requests
repositoryId: prRepositoryId # required for pull requests
key: personalaccesstoken
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["missingEpisodes", "missingMovies"]`.
```yaml
widget:
type: bazarr
url: http://bazarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: bazarr
url: http://bazarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["upstreams", "requests", "requests_failed"]`.
```yaml
widget:
type: caddy
url: http://caddy.host.or.ip:adminport # default admin port is 2019
type: caddy
url: http://caddy.host.or.ip:adminport # default admin port is 2019
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["books", "authors", "categories", "series"]`.
```yaml
widget:
type: calibreweb
url: http://your.calibreweb.host:port
username: username
password: password
type: calibreweb
url: http://your.calibreweb.host:port
username: username
password: password
```

View file

@ -7,7 +7,7 @@ Find your API key under `Settings > API`.
```yaml
widget:
type: changedetectionio
url: http://changedetection.host.or.ip:port
key: apikeyapikeyapikeyapikeyapikey
type: changedetectionio
url: http://changedetection.host.or.ip:port
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -5,6 +5,6 @@ description: Channels DVR Server Widget Configuration
```yaml
widget:
type: channelsdvrserver
url: http://192.168.1.55:8089
type: channelsdvrserver
url: http://192.168.1.55:8089
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["status", "origin_ip"]`.
```yaml
widget:
type: cloudflared
accountid: accountid # from zero trust dashboard url e.g. https://one.dash.cloudflare.com/<accountid>/home/quick-start
tunnelid: tunnelid # found in tunnels dashboard under the tunnel name
key: cloudflareapitoken # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens
type: cloudflared
accountid: accountid # from zero trust dashboard url e.g. https://one.dash.cloudflare.com/<accountid>/home/quick-start
tunnelid: tunnelid # found in tunnels dashboard under the tunnel name
key: cloudflareapitoken # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens
```

View file

@ -9,18 +9,18 @@ Allowed fields: no configurable fields for this widget.
```yaml
widget:
type: coinmarketcap
currency: GBP # Optional
symbols: [BTC, LTC, ETH]
key: apikeyapikeyapikeyapikeyapikey
defaultinterval: 7d # Optional
type: coinmarketcap
currency: GBP # Optional
symbols: [BTC, LTC, ETH]
key: apikeyapikeyapikeyapikeyapikey
defaultinterval: 7d # Optional
```
You can also specify slugs instead of symbols (since symbols aren't garaunteed to be unique). If you supply both, slugs will be used. For example:
```yaml
widget:
type: coinmarketcap
slugs: [chia-network, uniswap]
key: apikeyapikeyapikeyapikeyapikey
type: coinmarketcap
slugs: [chia-network, uniswap]
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,28 +9,28 @@ Fields need to be defined in the `mappings` section YAML object to correlate wit
```yaml
widget:
type: customapi
url: http://custom.api.host.or.ip:port/path/to/exact/api/endpoint
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
username: username # auth - optional
password: password # auth - optional
method: GET # optional, e.g. POST
headers: # optional, must be object, see below
mappings:
- field: key # needs to be YAML string or object
label: Field 1
format: text # optional - defaults to text
- field: # needs to be YAML string or object
path:
to: key2
format: number # optional - defaults to text
label: Field 2
- field: # needs to be YAML string or object
path:
to:
another: key3
label: Field 3
format: percent # optional - defaults to text
type: customapi
url: http://custom.api.host.or.ip:port/path/to/exact/api/endpoint
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
username: username # auth - optional
password: password # auth - optional
method: GET # optional, e.g. POST
headers: # optional, must be object, see below
mappings:
- field: key # needs to be YAML string or object
label: Field 1
format: text # optional - defaults to text
- field: # needs to be YAML string or object
path:
to: key2
format: number # optional - defaults to text
label: Field 2
- field: # needs to be YAML string or object
path:
to:
another: key3
label: Field 3
format: percent # optional - defaults to text
```
Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes` and `bitrate`.
@ -41,22 +41,22 @@ For the following JSON object from the API:
```json
{
"id": 1,
"name": "Rick Sanchez",
"status": "Alive",
"species": "Human",
"gender": "Male",
"origin": {
"name": "Earth (C-137)"
"id": 1,
"name": "Rick Sanchez",
"status": "Alive",
"species": "Human",
"gender": "Male",
"origin": {
"name": "Earth (C-137)"
},
"locations": [
{
"name": "Earth (C-137)"
},
"locations": [
{
"name": "Earth (C-137)"
},
{
"name": "Citadel of Ricks"
}
]
{
"name": "Citadel of Ricks"
}
]
}
```
@ -64,17 +64,17 @@ Define the `mappings` section as an aray, for example:
```yaml
mappings:
- field: name # Rick Sanchez
label: Name
- field: status # Alive
label: Status
- field:
origin: name # Earth (C-137)
label: Origin
- field:
locations:
1: name # Citadel of Ricks
label: Location
- field: name # Rick Sanchez
label: Name
- field: status # Alive
label: Status
- field:
origin: name # Earth (C-137)
label: Origin
- field:
locations:
1: name # Citadel of Ricks
label: Location
```
## Data Transformation
@ -86,12 +86,12 @@ You can manipulate data with the following tools `remap`, `scale` and `suffix`,
label: Field 4
format: text
remap:
- value: 0
to: None
- value: 1
to: Connected
- any: true # will map all other values
to: Unknown
- value: 0
to: None
- value: 1
to: Connected
- any: true # will map all other values
to: Unknown
- field: key5
label: Power
format: float
@ -105,5 +105,5 @@ Pass custom headers using the `headers` option, for example:
```yaml
headers:
X-API-Token: token
X-API-Token: token
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
```yaml
widget:
type: deluge
url: http://deluge.host.or.ip
password: password # webui password
type: deluge
url: http://deluge.host.or.ip
password: password # webui password
```

View file

@ -17,9 +17,9 @@ To access these system metrics you need to connect to the DiskStation with an ac
4. On the `Permissions` tab check the top box for `No Access`, effectively prohibiting the user from accessing anything in the shared folders.
5. Under `Applications` check the box next to `Deny` in the header to explicitly prohibit login to all applications.
6. Now _only_ allow login to the `Download Station` application, either by
- unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings)
- checking `Allow` for this app, or
- checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets.
- unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings)
- checking `Allow` for this app, or
- checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets.
7. When the `Preview` column shows `Allow` in the `Download Station` row, click `Save`.
Now configure the widget with the correct login information and test it.
@ -28,9 +28,9 @@ If you encounter issues during testing, make sure to uncheck the option for auto
```yaml
widget:
type: diskstation
url: http://diskstation.host.or.ip:port
username: username
password: password
volume: volume_N # optional
type: diskstation
url: http://diskstation.host.or.ip:port
username: username
password: password
volume: volume_N # optional
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
```yaml
widget:
type: downloadstation
url: http://downloadstation.host.or.ip:port
username: username
password: password
type: downloadstation
url: http://downloadstation.host.or.ip:port
username: username
password: password
```

View file

@ -9,9 +9,9 @@ As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "song
```yaml
widget:
type: emby
url: http://emby.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
type: emby
url: http://emby.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["pv_power", "grid_power", "home_power", "charge_power]`.
```yaml
widget:
type: evcc
url: http://evcc.host.or.ip:port
type: evcc
url: http://evcc.host.or.ip:port
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["queue", "processing", "processed", "time"]`.
```yaml
widget:
type: fileflows
url: http://your.fileflows.host:port
type: fileflows
url: http://your.fileflows.host:port
```

View file

@ -7,8 +7,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
```yaml
widget:
type: flood
url: http://flood.host.or.ip
username: username # if set
password: password # if set
type: flood
url: http://flood.host.or.ip
username: username # if set
password: password # if set
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["subscriptions", "unread"]`.
```yaml
widget:
type: freshrss
url: http://freshrss.host.or.ip:port
username: username
password: password
type: freshrss
url: http://freshrss.host.or.ip:port
username: username
password: password
```

View file

@ -9,7 +9,7 @@ Allowed fields (limited to a max of 4): `["status", "name", "map", "currentPlaye
```yaml
widget:
type: gamedig
serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list
url: udp://server.host.or.ip:port
type: gamedig
serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list
url: udp://server.host.or.ip:port
```

View file

@ -17,7 +17,7 @@ Allowed fields: `["gross_percent_today", "gross_percent_1y", "gross_percent_max"
```yaml
widget:
type: ghostfolio
url: http://ghostfoliohost:port
key: ghostfoliobearertoken
type: ghostfolio
url: http://ghostfoliohost:port
key: ghostfoliobearertoken
```

View file

@ -9,6 +9,6 @@ Allowed fields: `["public_ip", "region", "country"]`.
```yaml
widget:
type: gluetun
url: http://gluetun.host.or.ip
type: gluetun
url: http://gluetun.host.or.ip
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["apps", "clients", "messages"]`.
```yaml
widget:
type: gotify
url: http://gotify.host.or.ip
key: clientoken
type: gotify
url: http://gotify.host.or.ip
key: clientoken
```

View file

@ -7,8 +7,8 @@ Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered"]
```yaml
widget:
type: grafana
url: http://grafana.host.or.ip:port
username: username
password: password
type: grafana
url: http://grafana.host.or.ip:port
username: username
password: password
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["channels", "hd"]`.
```yaml
widget:
type: hdhomerun
url: http://hdhomerun.host.or.ip
type: hdhomerun
url: http://hdhomerun.host.or.ip
```

View file

@ -13,8 +13,8 @@ Allowed fields: `["status", "last_ping"]`.
```yaml
widget:
type: healthchecks
url: http://healthchecks.host.or.ip:port
key: <YOUR_API_KEY>
uuid: <YOUR_CHECK_UUID>
type: healthchecks
url: http://healthchecks.host.or.ip:port
key: <YOUR_API_KEY>
uuid: <YOUR_CHECK_UUID>
```

View file

@ -12,25 +12,25 @@ Allowed fields: `["people_home", "lights_on", "switches_on"]`.
Up to a maximum of four custom states and/or templates can be queried via the `custom` property like in the example below.
The `custom` property will have no effect as long as the `fields` property is defined.
- `state` will query the state of the specified `entity_id`
- state labels and values can be user defined and may reference entity attributes in curly brackets
- if no state label is defined it will default to `"{attributes.friendly_name}"`
- if no state value is defined it will default to `"{state} {attributes.unit_of_measurement}"`
- `template` will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]
- if no template label is defined it will be empty
- `state` will query the state of the specified `entity_id`
- state labels and values can be user defined and may reference entity attributes in curly brackets
- if no state label is defined it will default to `"{attributes.friendly_name}"`
- if no state value is defined it will default to `"{state} {attributes.unit_of_measurement}"`
- `template` will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]
- if no template label is defined it will be empty
```yaml
widget:
type: homeassistant
url: http://homeassistant.host.or.ip:port
key: access_token
custom:
- state: sensor.total_power
- state: sensor.total_energy_today
label: energy today
- template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}"
label: switches on
- state: weather.forecast_home
label: wind speed
value: "{attributes.wind_speed} {attributes.wind_speed_unit}"
type: homeassistant
url: http://homeassistant.host.or.ip:port
key: access_token
custom:
- state: sensor.total_power
- state: sensor.total_energy_today
label: energy today
- template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}"
label: switches on
- state: weather.forecast_home
label: wind speed
value: "{attributes.wind_speed} {attributes.wind_speed_unit}"
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["updates", "child_bridges"]`.
```yaml
widget:
type: homebridge
url: http://homebridge.host.or.ip:port
username: username
password: password
type: homebridge
url: http://homebridge.host.or.ip:port
username: username
password: password
```

View file

@ -9,7 +9,7 @@ Note that API key must be from admin user.
```yaml
widget:
type: immich
url: http://immich.host.or.ip
key: adminapikeyadminapikeyadminapikey
type: immich
url: http://immich.host.or.ip
key: adminapikeyadminapikeyadminapikey
```

View file

@ -9,6 +9,6 @@ Allowed fields: `["configured", "errored"]`.
```yaml
widget:
type: jackett
url: http://jackett.host.or.ip
type: jackett
url: http://jackett.host.or.ip
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["downloadCount", "downloadTotalBytes","downloadBytesRemaining"
```yaml
widget:
type: jdownloader
username: JDownloader Username
password: JDownloader Password
client: Name of JDownloader Instance
type: jdownloader
username: JDownloader Username
password: JDownloader Password
client: Name of JDownloader Instance
```

View file

@ -9,9 +9,9 @@ As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "song
```yaml
widget:
type: jellyfin
url: http://jellyfin.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
type: jellyfin
url: http://jellyfin.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available"]`.
```yaml
widget:
type: jellyseerr
url: http://jellyseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: jellyseerr
url: http://jellyseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["seriesCount", "totalFiles"]`.
```yaml
widget:
type: kavita
url: http://kavita.host.or.ip:port
username: username
password: password
type: kavita
url: http://kavita.host.or.ip:port
username: username
password: password
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["libraries", "series", "books"]`.
```yaml
widget:
type: komga
url: http://komga.host.or.ip:port
username: username
password: password
type: komga
url: http://komga.host.or.ip:port
username: username
password: password
```

View file

@ -9,10 +9,10 @@ You may optionally pass values for `snapshotHost` and / or `snapshotPath` to sel
```yaml
widget:
type: kopia
url: http://kopia.host.or.ip:port
username: username
password: password
snapshotHost: hostname # optional
snapshotPath: path # optional
type: kopia
url: http://kopia.host.or.ip:port
username: username
password: password
snapshotHost: hostname # optional
snapshotPath: path # optional
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["wanted", "queued", "artists"]`.
```yaml
widget:
type: lidarr
url: http://lidarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: lidarr
url: http://lidarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,6 +9,6 @@ Allowed fields: `["user_count", "status_count", "domain_count"]`.
```yaml
widget:
type: mastodon
url: https://mastodon.host.name
type: mastodon
url: https://mastodon.host.name
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["recipes", "users", "categories", "tags"]`.
```yaml
widget:
type: mealie
url: http://mealie-frontend.host.or.ip
key: mealieapitoken
type: mealie
url: http://mealie-frontend.host.or.ip
key: mealieapitoken
```

View file

@ -7,7 +7,7 @@ Allowed fields: `["wanted", "queued", "series"]`.
```yaml
widget:
type: medusa
url: http://medusa.host.or.ip:port
key: medusaapikeyapikeyapikeyapikeyapikey
type: medusa
url: http://medusa.host.or.ip:port
key: medusaapikeyapikeyapikeyapikeyapikey
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["uptime", "cpuLoad", "memoryUsed", "numberOfLeases"]`.
```yaml
widget:
type: mikrotik
url: https://mikrotik.host.or.ip
username: username
password: password
type: mikrotik
url: https://mikrotik.host.or.ip
username: username
password: password
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["players", "version", "status"]`.
```yaml
widget:
type: minecraft
url: udp://minecraftserveripordomain:port
type: minecraft
url: udp://minecraftserveripordomain:port
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["unread", "read"]`.
```yaml
widget:
type: miniflux
url: http://miniflux.host.or.ip:port
key: minifluxapikey
type: miniflux
url: http://miniflux.host.or.ip:port
key: minifluxapikey
```

View file

@ -9,6 +9,6 @@ Pass the stream URL from a service like [µStreamer](https://github.com/pikvm/us
```yaml
widget:
type: mjpeg
stream: http://mjpeg.host.or.ip/webcam/stream
type: mjpeg
stream: http://mjpeg.host.or.ip/webcam/stream
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["printer_state", "print_status", "print_progress", "layers"]`.
```yaml
widget:
type: moonraker
url: http://moonraker.host.or.ip:port
type: moonraker
url: http://moonraker.host.or.ip:port
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["series", "issues", "wanted"]`.
```yaml
widget:
type: mylar
url: http://mylar3.host.or.ip:port
key: yourmylar3apikey
type: mylar
url: http://mylar3.host.or.ip:port
key: yourmylar3apikey
```

View file

@ -9,9 +9,9 @@ Allowed fields: no configurable fields for this widget.
```yaml
widget:
type: navidrome
url: http://navidrome.host.or.ip:port
user: username
token: token #md5(password + salt)
salt: randomsalt
type: navidrome
url: http://navidrome.host.or.ip:port
user: username
token: token #md5(password + salt)
salt: randomsalt
```

View file

@ -11,15 +11,15 @@ Note "cpuload" and "memoryusage" were deprecated in v0.6.18 and a maximum of 4 f
```yaml
widget:
type: nextcloud
url: https://nextcloud.host.or.ip:port
key: token
type: nextcloud
url: https://nextcloud.host.or.ip:port
key: token
```
```yaml
widget:
type: nextcloud
url: https://nextcloud.host.or.ip:port
username: username
password: password
type: nextcloud
url: https://nextcloud.host.or.ip:port
username: username
password: password
```

View file

@ -7,7 +7,7 @@ Api key is found under Account > API, profile ID is found under Setup > Endpoint
```yaml
widget:
type: nextdns
profile: profileid
key: yourapikeyhere
type: nextdns
profile: profileid
key: yourapikeyhere
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["enabled", "disabled", "total"]`.
```yaml
widget:
type: npm
url: http://npm.host.or.ip
username: admin_username
password: admin_password
type: npm
url: http://npm.host.or.ip
username: admin_username
password: admin_password
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["rate", "remaining", "downloaded"]`.
```yaml
widget:
type: nzbget
url: http://nzbget.host.or.ip
username: controlusername
password: controlpassword
type: nzbget
url: http://nzbget.host.or.ip
username: controlusername
password: controlpassword
```

View file

@ -7,7 +7,7 @@ Allowed fields: `["printer_state", "temp_tool", "temp_bed", "job_completion"]`.
```yaml
widget:
type: octoprint
url: http://octoprint.host.or.ip:port
key: youroctoprintapikey
type: octoprint
url: http://octoprint.host.or.ip:port
key: youroctoprintapikey
```

View file

@ -9,9 +9,9 @@ Allowed fields: `["connectedAp", "activeUser", "alerts", "connectedGateways", "c
```yaml
widget:
type: omada
url: http://omada.host.or.ip:port
username: username
password: password
site: sitename
type: omada
url: http://omada.host.or.ip:port
username: username
password: password
site: sitename
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available"]`.
```yaml
widget:
type: ombi
url: http://ombi.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: ombi
url: http://ombi.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["yieldDay", "relativePower", "absolutePower", "limit"]`.
```yaml
widget:
type: opendtu
url: http://opendtu.host.or.ip
type: opendtu
url: http://opendtu.host.or.ip
```

View file

@ -7,11 +7,11 @@ Provides useful information from your OpenMediaVault
```yaml
widget:
type: openmediavault
url: http://omv.host.or.ip
username: admin
password: pass
method: services.getStatus # required
type: openmediavault
url: http://omv.host.or.ip
username: admin
password: pass
method: services.getStatus # required
```
## Methods

View file

@ -5,8 +5,8 @@ description: OPNSense Widget Configuration
The API key & secret can be generated via the webui by creating a new user at _System/Access/Users_. Ensure "Generate a scrambled password to prevent local database logins for this user" is checked and then edit the effective privileges selecting **only**:
- Diagnostics: System Activity
- Status: Traffic Graph
- Diagnostics: System Activity
- Status: Traffic Graph
Finally, create a new API key which will download an `apikey.txt` file with your key and secret in it. Use the values as the username and password fields, respectively, in your homepage config.
@ -14,8 +14,8 @@ Allowed fields: `["cpu", "memory", "wanUpload", "wanDownload"]`.
```yaml
widget:
type: opnsense
url: http://opnsense.host.or.ip
username: key
password: secret
type: opnsense
url: http://opnsense.host.or.ip
username: key
password: secret
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available", "processing"]`.
```yaml
widget:
type: overseerr
url: http://overseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: overseerr
url: http://overseerr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,15 +9,15 @@ Allowed fields: `["total", "inbox"]`.
```yaml
widget:
type: paperlessngx
url: http://paperlessngx.host.or.ip:port
username: username
password: password
type: paperlessngx
url: http://paperlessngx.host.or.ip:port
username: username
password: password
```
```yaml
widget:
type: paperlessngx
url: http://paperlessngx.host.or.ip:port
key: token
type: paperlessngx
url: http://paperlessngx.host.or.ip:port
key: token
```

View file

@ -17,9 +17,9 @@ Allowed fields: `["load", "memory", "temp", "wanStatus", "wanIP", "disk"]` (maxi
```yaml
widget:
type: pfsense
url: http://pfsense.host.or.ip:port
username: user
password: pass
wan: igb0
type: pfsense
url: http://pfsense.host.or.ip:port
username: user
password: pass
wan: igb0
```

View file

@ -7,8 +7,8 @@ Allowed fields: `["albums", "photos", "videos", "people"]`.
```yaml
widget:
type: photoprism
url: http://photoprism.host.or.ip:port
username: admin
password: password
type: photoprism
url: http://photoprism.host.or.ip:port
username: admin
password: password
```

View file

@ -9,6 +9,6 @@ Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
```yaml
widget:
type: pialert
url: http://ip:port
type: pialert
url: http://ip:port
```

View file

@ -9,9 +9,9 @@ Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`.
```yaml
widget:
type: pihole
url: http://pi.hole.or.ip
key: yourpiholeapikey # optional
type: pihole
url: http://pi.hole.or.ip
key: yourpiholeapikey # optional
```
_Added in v0.1.0, udpated in v0.6.18_

View file

@ -9,7 +9,7 @@ Allowed fields: no configurable fields for this widget.
```yaml
widget:
type: tautulli
url: http://tautulli.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: tautulli
url: http://tautulli.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["streams", "albums", "movies", "tv"]`.
```yaml
widget:
type: plex
url: http://plex.host.or.ip:32400
key: mytokenhere # see https://www.plexopedia.com/plex-media-server/general/plex-token/
type: plex
url: http://plex.host.or.ip:32400
key: mytokenhere # see https://www.plexopedia.com/plex-media-server/general/plex-token/
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["running", "stopped", "total"]`.
```yaml
widget:
type: portainer
url: https://portainer.host.or.ip:9443
env: 1
key: ptr_accesskeyaccesskeyaccesskeyaccesskey
type: portainer
url: https://portainer.host.or.ip:9443
env: 1
key: ptr_accesskeyaccesskeyaccesskeyaccesskey
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["targets_up", "targets_down", "targets_total"]`
```yaml
widget:
type: prometheus
url: http://prometheushost:port
type: prometheus
url: http://prometheushost:port
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs", "numb
```yaml
widget:
type: prowlarr
url: http://prowlarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: prowlarr
url: http://prowlarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -13,15 +13,15 @@ You will need to generate an API Token for new or an existing user. Here is an e
4. Name the group something informative, like api-ro-users
5. Click on the Permissions "folder"
6. Click Add -> Group Permission
- Path: /
- Group: group from bullet 4 above
- Role: PVEAuditor
- Propagate: Checked
- Path: /
- Group: group from bullet 4 above
- Role: PVEAuditor
- Propagate: Checked
7. Expand Permissions, click on Users
8. Click the Add button
- User name: something informative like `api`
- Realm: Linux PAM standard authentication
- Group: group from bullet 4 above
- User name: something informative like `api`
- Realm: Linux PAM standard authentication
- Group: group from bullet 4 above
9. Expand Permissions, click on API Tokens
10. Click the Add button
- User: user from bullet 8 above
@ -42,9 +42,9 @@ You can set the optional `node` setting when you want to show metrics for a sing
```yaml
widget:
type: proxmox
url: https://proxmox.host.or.ip:8006
username: api_token_id
password: api_token_secret
node: pve-1 # optional
type: proxmox
url: https://proxmox.host.or.ip:8006
username: api_token_id
password: api_token_secret
node: pve-1 # optional
```

View file

@ -7,8 +7,8 @@ Allowed fields: `["datastore_usage", "failed_tasks_24h", "cpu_usage", "memory_us
```yaml
widget:
type: proxmoxbackupserver
url: https://proxmoxbackupserver.host:port
username: api_token_id
password: api_token_secret
type: proxmoxbackupserver
url: https://proxmoxbackupserver.host:port
username: api_token_id
password: api_token_secret
```

View file

@ -7,7 +7,7 @@ Allowed fields: `["nodes", "servers"]`
```yaml
widget:
type: pterodactyl
url: http://pterodactylhost:port
key: pterodactylapikey
type: pterodactyl
url: http://pterodactylhost:port
key: pterodactylapikey
```

View file

@ -7,8 +7,8 @@ Allowed fields: `["speed", "active", "queue", "total"]`.
```yaml
widget:
type: pyload
url: http://pyload.host.or.ip:port
username: username
password: password # only needed if set
type: pyload
url: http://pyload.host.or.ip:port
username: username
password: password # only needed if set
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
```yaml
widget:
type: qbittorrent
url: http://qbittorrent.host.or.ip
username: username
password: password
type: qbittorrent
url: http://qbittorrent.host.or.ip
username: username
password: password
```

View file

@ -7,10 +7,10 @@ Allowed fields: `["cpuUsage", "memUsage", "systemTempC", "poolUsage", "volumeUsa
```yaml
widget:
type: qnap
url: http://qnap.host.or.ip:port
username: user
password: pass
type: qnap
url: http://qnap.host.or.ip:port
username: user
password: pass
```
If the QNAP device has multiple volumes, the _poolUsage_ will be a sum of all volumes.

View file

@ -11,8 +11,8 @@ A detailed queue listing is disabled by default, but can be enabled with the `en
```yaml
widget:
type: radarr
url: http://radarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableQueue: true # optional, defaults to false
type: radarr
url: http://radarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableQueue: true # optional, defaults to false
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["wanted", "queued", "books"]`.
```yaml
widget:
type: readarr
url: http://readarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: readarr
url: http://readarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -9,8 +9,8 @@ Allowed fields: `["active", "upload", "download"]`.
```yaml
widget:
type: rutorrent
url: http://rutorrent.host.or.ip
username: username # optional, false if not used
password: password # optional, false if not used
type: rutorrent
url: http://rutorrent.host.or.ip
username: username # optional, false if not used
password: password # optional, false if not used
```

View file

@ -9,7 +9,7 @@ Allowed fields: `["rate", "queue", "timeleft"]`.
```yaml
widget:
type: sabnzbd
url: http://sabnzbd.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
type: sabnzbd
url: http://sabnzbd.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["passed", "failed", "unknown"]`.
```yaml
widget:
type: scrutiny
url: http://scrutiny.host.or.ip
type: scrutiny
url: http://scrutiny.host.or.ip
```

View file

@ -11,8 +11,8 @@ A detailed queue listing is disabled by default, but can be enabled with the `en
```yaml
widget:
type: sonarr
url: http://sonarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableQueue: true # optional, defaults to false
type: sonarr
url: http://sonarr.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
enableQueue: true # optional, defaults to false
```

View file

@ -11,6 +11,6 @@ Allowed fields: `["download", "upload", "ping"]`.
```yaml
widget:
type: speedtest
url: http://speedtest.host.or.ip
type: speedtest
url: http://speedtest.host.or.ip
```

View file

@ -9,6 +9,6 @@ Allowed fields: `["numActiveSessions", "numConnections", "bytesProxied"]`.
```yaml
widget:
type: strelaysrv
url: http://syncthing.host.or.ip:22070
type: strelaysrv
url: http://syncthing.host.or.ip:22070
```

View file

@ -11,7 +11,7 @@ Allowed fields: `["address", "last_seen", "expires"]`.
```yaml
widget:
type: tailscale
deviceid: deviceid
key: tailscalekey
type: tailscale
deviceid: deviceid
key: tailscalekey
```

View file

@ -7,6 +7,6 @@ Allowed fields: `["queue", "processed", "errored", "saved"]`.
```yaml
widget:
type: tdarr
url: http://tdarr.host.or.ip
type: tdarr
url: http://tdarr.host.or.ip
```

View file

@ -10,8 +10,8 @@ Allowed fields: `["routers", "services", "middleware"]`.
```yaml
widget:
type: traefik
url: http://traefik.host.or.ip
username: username # optional
password: password # optional
type: traefik
url: http://traefik.host.or.ip
username: username # optional
password: password # optional
```

View file

@ -9,9 +9,9 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
```yaml
widget:
type: transmission
url: http://transmission.host.or.ip
username: username
password: password
rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file
type: transmission
url: http://transmission.host.or.ip
username: username
password: password
rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file
```

View file

@ -9,9 +9,9 @@ To create an API Key, follow [the official TrueNAS documentation](https://www.tr
```yaml
widget:
type: truenas
url: http://truenas.host.or.ip
username: user # not required if using api key
password: pass # not required if using api key
key: yourtruenasapikey # not required if using username / password
type: truenas
url: http://truenas.host.or.ip
username: user # not required if using api key
password: pass # not required if using api key
key: yourtruenasapikey # not required if using username / password
```

Some files were not shown because too many files have changed in this diff Show more