You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/customservices.md
+46-13Lines changed: 46 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@ Smart cards provide specific integrations for external services. They display ad
4
4
5
5
Each service integration has different requirements and may need additional configuration parameters (see card list below).
6
6
7
-
> [!WARNING]
7
+
> [!WARNING]
8
8
> Your `config.yml` file is exposed at `/assets/config.yml` via HTTP. Any sensitive information (like API keys)
9
9
> in this file is visible to anyone who can access your Homer instance. Only include API keys if your Homer
10
10
> instance is protected by authentication or access controls **or use a proxy like [`CORSair`](https://github.com/bastienwirtz/corsair)
11
-
> to inject your credentials safely**, using environment variable on the server side.
11
+
> to inject your credentials safely**, using environment variable on the server side.
12
12
13
13
Available services are located in `src/components/`:
14
14
@@ -60,7 +60,7 @@ Available services are located in `src/components/`:
60
60
-[Wallabag](#wallabag)
61
61
-[What's Up Docker](#whats-up-docker)
62
62
63
-
> [!IMPORTANT]
63
+
> [!IMPORTANT]
64
64
> Smart cards that interact with external services are subject to CORS restrictions, therefore require one of the following:
65
65
>
66
66
> - All services hosted on the **same domain** as Homer (mydomain.tld/pihole, mydomain.tld/proxmox) to avoid cross-domain request entirely.
@@ -75,7 +75,7 @@ Available services are located in `src/components/`:
75
75
- name: "My Service"
76
76
type: "<type>"
77
77
logo: "assets/tools/sample.png"# Optional
78
-
url: https://my-service.url # Optional: Card link and API base url unless 'endpoint' is provided (see below)
78
+
url: https://my-service.url # Optional: Card link and API base url unless 'endpoint' is provided (see below)
79
79
endpoint: https://my-service-api.url # Optional: alternative base URL used to fetch service data when necessary.
80
80
useCredentials: false # Optional: Override global proxy.useCredentials configuration.
81
81
headers: # Optional: Override global proxy.headers configuration.
@@ -96,8 +96,8 @@ Displays AdGuard Home protection status and blocked query statistics.
96
96
97
97
> **Note**: If AdGuard Home’s web user is password-protected, you must pass Authorization HTTP header along with all requests. It can be done using a proxy or adding the following to the item configuration:
98
98
>
99
-
> ```yaml
100
-
> headers:
99
+
> ```yaml
100
+
> headers:
101
101
> Authorization: "Basic <base64-encoded for username:password>"
102
102
> ```
103
103
@@ -232,6 +232,7 @@ Displays status counts (up/down/grace) from your Healthchecks monitoring service
232
232
233
233
Displays Home Assistant instance status, version, location, and entity count.
234
234
235
+
**Basic configuration:**
235
236
```yaml
236
237
- name: "Home Assistant"
237
238
type: "HomeAssistant"
@@ -252,8 +253,40 @@ http:
252
253
cors_allowed_origins:
253
254
- "http://homer.local:8080"
254
255
- "https://your-homer-domain.com"
256
+
```
257
+
258
+
**Custom sensors configuration:**
259
+
```yaml
260
+
- name: "Home Assistant"
261
+
logo: "assets/tools/sample.png"
262
+
url: "http://192.168.0.151/"
263
+
type: "HomeAssistant"
264
+
apikey: "<---insert-api-key-here--->"
265
+
showUnits: true # Optional: Show units from Home Assistant (default: true)
266
+
updateInterval: 30000 # Optional: Sensor refresh interval in ms (default: 30000)
267
+
sensors: # Optional: Display custom sensors instead of default stats
268
+
- id: "sensor.living_room_temperature"
269
+
icon: "fas fa-home"
270
+
- id: "sensor.bedroom_humidity"
271
+
icon: "fas fa-bed"
272
+
- id: "sensor.power_consumption"
273
+
icon: "fas fa-bolt"
274
+
- id: "sensor.outdoor_air_quality"
275
+
icon: "fas fa-cloud-sun"
255
276
```
256
277
278
+
**Configuration Options:**
279
+
280
+
- When `sensors` is provided, the service displays sensor readings with custom icons instead of the default version/entity information
281
+
- `showUnits`: Controls whether to display units from Home Assistant (default: `true`)
282
+
- `updateInterval`: How often to refresh sensor data in milliseconds (default: `30000`)
283
+
- Sensor values are automatically formatted to 1 decimal place with units (when enabled)
284
+
- Supports any numeric sensor type (temperature, humidity, power, etc.)
285
+
- Falls back to original behavior if `sensors` is not configured
286
+
287
+
To create an API token on HomeAssistant, follow the [official documentation here](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token).
288
+
To enable cors on HomeAssistant, edit your `configuration.yml` and add the IP of Homer to `https: cors_allowed_origins`
289
+
257
290
## Immich
258
291
259
292
Displays user count, photo/video counts, and storage usage from your Immich server.
@@ -302,7 +335,7 @@ The url must be the root url of Lidarr, Prowlarr, Readarr, Radarr or Sonarr appl
302
335
303
336
**API Key**: The Lidarr, Prowlarr, Readarr, Radarr or Sonarr API key can be found in `Settings` > `General`. It is needed to access the API.
304
337
305
-
> [!IMPORTANT]
338
+
> [!IMPORTANT]
306
339
> **Radarr API V3 support**: If you are using an older version of Radarr or Sonarr which don't support the new V3 api endpoints, add the following line to your service config `"legacyApi: true"`
307
340
308
341
## Linkding
@@ -386,7 +419,7 @@ Moonraker's API mimmicks a few of OctoPrint's endpoints which makes these servic
386
419
endpoint: "https://my-service-api.url:port"
387
420
apikey: "<---insert-api-key-here--->"
388
421
display: "text" # 'text' or 'bar'. Default to `text`.
389
-
422
+
390
423
```
391
424
392
425
## Olivetin
@@ -435,7 +468,7 @@ The following configuration is available for the OpenWeatherMap service:
435
468
locationId: "2759794" # Optional: Specify OpenWeatherMap city ID for better accuracy
436
469
units: "metric" # units to display temperature. Can be one of: metric, imperial, kelvin. Defaults to kelvin.
437
470
background: "square" # choose which type of background you want behind the image. Can be one of: square, circle, none. Defaults to none.
438
-
471
+
439
472
```
440
473
441
474
**Remarks:**
@@ -564,7 +597,7 @@ Displays container counts (running/dead/misc), version, and online status from y
564
597
565
598
## Proxmox
566
599
567
-
Displays status information of a Proxmox node (VMs running and disk, memory and cpu used).
600
+
Displays status information of a Proxmox node (VMs running and disk, memory and cpu used).
568
601
569
602
```yaml
570
603
- name: "Proxmox - Node"
@@ -632,7 +665,7 @@ for setting up rTorrent.
632
665
633
666
## SABnzbd
634
667
635
-
Displays the number of currently active downloads on your SABnzbd instance.
668
+
Displays the number of currently active downloads on your SABnzbd instance.
636
669
637
670
```yaml
638
671
- name: "SABnzbd"
@@ -677,7 +710,7 @@ Displays the number of currently active streams on you Plex instance.
677
710
type: "Tautulli"
678
711
logo: "assets/tools/sample.png"
679
712
url: https://my-service.url
680
-
checkInterval: 5000 # (Optional) Interval (in ms) for updating the status
713
+
checkInterval: 5000 # (Optional) Interval (in ms) for updating the status
**Authentication**: If BasicAuth is set, credentials will be encoded in Base64 and sent as an Authorization header (`Basic <encoded_value>`). The value must be formatted as "admin:password".
0 commit comments