Added dashboards from home-assistant. Added alarm signal ADC sensor for sthome_ut1

This commit is contained in:
Chris Stuurman 2025-04-28 22:49:18 +02:00
parent 8801f142f1
commit 34e1836ffe
16 changed files with 1879 additions and 27 deletions

View File

@ -19,4 +19,5 @@ syncthing: 192.168.2.241
# we use macvlan1 to use multicast dns (mDNS). As of setting this up, don't know how to setup avahi daemon without using macvlan.
ESPHOME_LOCAL: 10.0.2.254
HOME_ASSISTANT_LOCAL: 10.0.2.253
HOME_ASSISTANT_LOCAL: 10.0.2.253
JELLYFIN_LOCAL: 10.0.2.252

View File

@ -50,24 +50,39 @@ captive_portal:
#preferences:
# flash_write_interval: 30s
#-25.711340, 28.118370
sun:
latitude: 25.7566° S
longitude: 28.1914° E
latitude: -25.711340
longitude: 28.118370
time:
- platform: homeassistant
# define DIGITAL_D1 04
binary_sensor:
- platform: gpio
# device_class: light
id: floodlight_test
pin:
number: GPIO04
mode:
input: true
pullup: true
filters:
- delayed_off: 100ms
name: "Floodlights Test Mode"
icon: "mdi:lightbulb-on-outline"
#define OUTPUT_R1 16
#define OUTPUT_R2 17
#define OUTPUT_R3 18
#define OUTPUT_R4 19
switch:
- platform: gpio
pin:
number: GPIO16
inverted: False
inverted: true
id: relay1
name: "Floodlights Backyard"
icon: "mdi:light-flood-down"
@ -114,7 +129,12 @@ switch:
- sun.is_below_horizon:
then:
- switch.turn_on: relay1
- delay: 1000ms
- if:
condition:
- binary_sensor.is_on: floodlight_test
then:
- switch.turn_on: relay1
- delay: 10s
- switch.turn_off: relay4
#define ANALOG_A1 33
@ -123,9 +143,30 @@ switch:
#define ANALOG_A4 34
#define ANALOG_A5 39
#define ANALOG_A6 36
#sensor:
sensor:
- platform: adc
pin: 35
name: "Alarm Signal"
id: alarm_signal
update_interval: 1s
attenuation: 12db
sampling_mode: avg
filters:
- lambda:
if (x >= 3.11) {
return x * 1.60256;
} else if (x <= 0.15) {
return 0;
} else {
return x * 1.51;
}
on_value:
then:
# switch on floodlights
lambda: |-
if (id(alarm_signal).state > 1.5) {
id(relay1).turn_on();
}
# - platform: adc
# pin: 33
# name: "A1 Voltage"
@ -156,21 +197,6 @@ switch:
# return x * 1.51;
# }
# - platform: adc
# pin: 35
# name: "A3 Voltage"
# update_interval: 1s
# attenuation: 12db
# sampling_mode: avg
# filters:
# - lambda:
# if (x >= 3.11) {
# return x * 1.60256;
# } else if (x <= 0.15) {
# return 0;
# } else {
# return x * 1.51;
# }
# - platform: adc
# pin: 34
# name: "A4 Voltage"
# update_interval: 5s

View File

@ -0,0 +1,110 @@
alias: "FRIGATE: Person Detect Logic - Backyard Camera"
description: >-
This automation is used to send a notification when a person is detected by
Frigate. It uses the frigate MQTT event stream to trigger the notification and
includes a snapshot of the detected object. The notification will be sent to
all devices with the specified group and will include a video clip of the
detection if available.
triggers:
- topic: homeassistant/events
id: frigate-event
value_template: "{{ value_json[\"after\"][\"camera\"] }}"
variables:
after_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
before_zones: "{{ trigger.payload_json[\"before\"][\"entered_zones\"] }}"
camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
label: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
score: "{{ trigger.payload_json[\"after\"][\"score\"] }}"
time_clip_start: "{{ trigger.payload_json[\"after\"][\"start_time\"] - 10.0 }}"
detect_time: "{{trigger.payload_json[\"after\"][\"start_time\"]|int}}"
trigger: mqtt
payload: Backyard
conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ trigger.payload_json['type'] == 'new' }}"
- condition: template
value_template: "{{ before_zones | length == 0 }}"
enabled: true
# - condition: template
# value_template: "{{ trigger.payload_json[\"after\"][\"entered_zones\"]|length > 0 }}"
# enabled: true
- alias: Object is in Backyard
condition: template
value_template: "{{ [\"backyard_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
enabled: true
actions:
- choose:
- conditions:
- condition: trigger
id: frigate-event
sequence:
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >-
{{ label }} was detected on {{ camera | replace("_", " ") |
title }} camera
message: >-
"{{ label }} detected in the {{ after_zones[0] | replace("_", "
") | title }} zone"
notifTag: "{{ id }}"
notifIcon: mdi:alarm-light
group: frigate-notification-{{ camera }}
channel: alarm
importance: max
priority: critical
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: ""
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
- repeat:
sequence:
- wait_for_trigger:
- topic: homeassistant/events
payload: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
value_template: "{{ value_json[\"after\"][\"id\"] }}"
trigger: mqtt
continue_on_timeout: false
timeout: "00:02:00"
- condition: template
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >
{% if (wait.trigger.payload_json["after"]["sub_label"] !=
None) -%} {{
(wait.trigger.payload_json["after"]["sub_label"]) | title
}} {%- else -%} {{ label | replace("_", " ") | title }}
{%- endif %} was detected in the {{ after_zones[0] |
replace("_", " ") | title }} zone
message: >-
Detected with {{ int(score | round(2) * 100) }}%
confidence
notifTag: "{{ id }}"
notifIcon: mdi:cctv
group: >
frigate-notification-{{
trigger.payload_json["after"]["camera"] }}
channel: alarm
priority: high
importance: default
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: /api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
until:
- condition: template
value_template: "{{ wait.trigger.payload_json[\"type\"] == \"end\" }}"
default: []
mode: parallel
max: 10

View File

@ -0,0 +1,111 @@
alias: "FRIGATE: Person Detect Logic - Driveway Camera"
description: >-
This automation is used to send a notification when a person is detected by
Frigate. It uses the frigate MQTT event stream to trigger the notification and
includes a snapshot of the detected object. The notification will be sent to
all devices with the specified group and will include a video clip of the
detection if available.
triggers:
- topic: homeassistant/events
id: frigate-event
value_template: "{{ value_json[\"after\"][\"camera\"] }}"
variables:
after_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
before_zones: "{{ trigger.payload_json[\"before\"][\"entered_zones\"] }}"
camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
label: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
score: "{{ trigger.payload_json[\"after\"][\"score\"] }}"
time_clip_start: "{{ trigger.payload_json[\"after\"][\"start_time\"] - 10.0 }}"
detect_time: "{{trigger.payload_json[\"after\"][\"start_time\"]|int}}"
trigger: mqtt
payload: Driveway
conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ trigger.payload_json['type'] == 'new' }}"
- condition: template
value_template: "{{ before_zones | length == 0 }}"
enabled: true
- alias: Object is in Street or Front Yard
condition: template
value_template: "{{ [\"driveway_z1\", \"Driveway_Paving\"] | select(\"in\", after_zones) | list | length > 0 }}"
enabled: true
- alias: Object is not a Car
condition: template
value_template: "{{ trigger.payload_json[\"after\"][\"label\"] != 'car' }}"
enabled: true
actions:
- choose:
- conditions:
- condition: trigger
id: frigate-event
sequence:
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >-
{{ label }} was detected on {{ camera | replace("_", " ") |
title }} camera
message: >-
"{{ label }} detected in the {{ after_zones[0] | replace("_", "
") | title }} zone"
notifTag: "{{ id }}"
notifIcon: mdi:alarm-light
group: frigate-notification-{{ camera }}
channel: alarm
importance: max
priority: critical
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: ""
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
- repeat:
sequence:
- wait_for_trigger:
- topic: homeassistant/events
payload: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
value_template: "{{ value_json[\"after\"][\"id\"] }}"
trigger: mqtt
continue_on_timeout: false
timeout: "00:02:00"
- condition: template
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >
{% if (wait.trigger.payload_json["after"]["sub_label"] !=
None) -%} {{
(wait.trigger.payload_json["after"]["sub_label"]) | title
}} {%- else -%} {{ label | replace("_", " ") | title }}
{%- endif %} was detected in the {{ after_zones[0] |
replace("_", " ") | title }} zone
message: >-
Detected with {{ int(score | round(2) * 100) }}%
confidence
notifTag: "{{ id }}"
notifIcon: mdi:cctv
group: >
frigate-notification-{{
trigger.payload_json["after"]["camera"] }}
channel: alarm
priority: high
importance: default
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: /api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
until:
- condition: template
value_template: "{{ wait.trigger.payload_json[\"type\"] == \"end\" }}"
default: []
mode: parallel
max: 10

View File

@ -0,0 +1,110 @@
alias: "FRIGATE: Person Detect Logic - Eastwall Camera"
description: >-
This automation is used to send a notification when a person is detected by
Frigate. It uses the frigate MQTT event stream to trigger the notification and
includes a snapshot of the detected object. The notification will be sent to
all devices with the specified group and will include a video clip of the
detection if available.
triggers:
- topic: homeassistant/events
id: frigate-event
value_template: "{{ value_json[\"after\"][\"camera\"] }}"
variables:
after_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
before_zones: "{{ trigger.payload_json[\"before\"][\"entered_zones\"] }}"
camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
label: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
score: "{{ trigger.payload_json[\"after\"][\"score\"] }}"
time_clip_start: "{{ trigger.payload_json[\"after\"][\"start_time\"] - 10.0 }}"
detect_time: "{{trigger.payload_json[\"after\"][\"start_time\"]|int}}"
trigger: mqtt
payload: Eastwall
conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ trigger.payload_json['type'] == 'new' }}"
- condition: template
value_template: "{{ before_zones | length == 0 }}"
enabled: true
# - condition: template
# value_template: "{{ trigger.payload_json[\"after\"][\"entered_zones\"]|length > 0 }}"
# enabled: true
- alias: Object is on the East side of house
condition: template
value_template: "{{ [\"eastwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
enabled: true
actions:
- choose:
- conditions:
- condition: trigger
id: frigate-event
sequence:
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >-
{{ label }} was detected on {{ camera | replace("_", " ") |
title }} camera
message: >-
"{{ label }} detected in the {{ after_zones[0] | replace("_", "
") | title }} zone"
notifTag: "{{ id }}"
notifIcon: mdi:alarm-light
group: frigate-notification-{{ camera }}
channel: alarm
importance: max
priority: critical
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: ""
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
- repeat:
sequence:
- wait_for_trigger:
- topic: homeassistant/events
payload: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
value_template: "{{ value_json[\"after\"][\"id\"] }}"
trigger: mqtt
continue_on_timeout: false
timeout: "00:02:00"
- condition: template
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >
{% if (wait.trigger.payload_json["after"]["sub_label"] !=
None) -%} {{
(wait.trigger.payload_json["after"]["sub_label"]) | title
}} {%- else -%} {{ label | replace("_", " ") | title }}
{%- endif %} was detected in the {{ after_zones[0] |
replace("_", " ") | title }} zone
message: >-
Detected with {{ int(score | round(2) * 100) }}%
confidence
notifTag: "{{ id }}"
notifIcon: mdi:cctv
group: >
frigate-notification-{{
trigger.payload_json["after"]["camera"] }}
channel: alarm
priority: high
importance: default
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: /api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
until:
- condition: template
value_template: "{{ wait.trigger.payload_json[\"type\"] == \"end\" }}"
default: []
mode: parallel
max: 10

View File

@ -0,0 +1,110 @@
alias: "FRIGATE: Person Detect Logic - Patio Camera"
description: >-
This automation is used to send a notification when a person is detected by
Frigate. It uses the frigate MQTT event stream to trigger the notification and
includes a snapshot of the detected object. The notification will be sent to
all devices with the specified group and will include a video clip of the
detection if available.
triggers:
- topic: homeassistant/events
id: frigate-event
value_template: "{{ value_json[\"after\"][\"camera\"] }}"
variables:
after_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
before_zones: "{{ trigger.payload_json[\"before\"][\"entered_zones\"] }}"
camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
label: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
score: "{{ trigger.payload_json[\"after\"][\"score\"] }}"
time_clip_start: "{{ trigger.payload_json[\"after\"][\"start_time\"] - 10.0 }}"
detect_time: "{{trigger.payload_json[\"after\"][\"start_time\"]|int}}"
trigger: mqtt
payload: Patio
conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ trigger.payload_json['type'] == 'new' }}"
- condition: template
value_template: "{{ before_zones | length == 0 }}"
enabled: true
# - condition: template
# value_template: "{{ trigger.payload_json[\"after\"][\"entered_zones\"]|length > 0 }}"
# enabled: true
- alias: Object is on Patio
condition: template
value_template: "{{ [\"patio_z1\", \"Patio_Gate\"] | select(\"in\", after_zones) | list | length > 0 }}"
enabled: true
actions:
- choose:
- conditions:
- condition: trigger
id: frigate-event
sequence:
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >-
{{ label }} was detected on {{ camera | replace("_", " ") |
title }} camera
message: >-
"{{ label }} detected in the {{ after_zones[0] | replace("_", "
") | title }} zone"
notifTag: "{{ id }}"
notifIcon: mdi:alarm-light
group: frigate-notification-{{ camera }}
channel: alarm
importance: max
priority: critical
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: ""
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
- repeat:
sequence:
- wait_for_trigger:
- topic: homeassistant/events
payload: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
value_template: "{{ value_json[\"after\"][\"id\"] }}"
trigger: mqtt
continue_on_timeout: false
timeout: "00:02:00"
- condition: template
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >
{% if (wait.trigger.payload_json["after"]["sub_label"] !=
None) -%} {{
(wait.trigger.payload_json["after"]["sub_label"]) | title
}} {%- else -%} {{ label | replace("_", " ") | title }}
{%- endif %} was detected in the {{ after_zones[0] |
replace("_", " ") | title }} zone
message: >-
Detected with {{ int(score | round(2) * 100) }}%
confidence
notifTag: "{{ id }}"
notifIcon: mdi:cctv
group: >
frigate-notification-{{
trigger.payload_json["after"]["camera"] }}
channel: alarm
priority: high
importance: default
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: /api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
until:
- condition: template
value_template: "{{ wait.trigger.payload_json[\"type\"] == \"end\" }}"
default: []
mode: parallel
max: 10

View File

@ -0,0 +1,107 @@
alias: "FRIGATE: Person Detect Logic - Westwall Camera"
description: >-
This automation is used to send a notification when a person is detected by
Frigate. It uses the frigate MQTT event stream to trigger the notification and
includes a snapshot of the detected object. The notification will be sent to
all devices with the specified group and will include a video clip of the
detection if available.
triggers:
- topic: homeassistant/events
id: frigate-event
value_template: "{{ value_json[\"after\"][\"camera\"] }}"
variables:
after_zones: "{{ trigger.payload_json[\"after\"][\"entered_zones\"] }}"
before_zones: "{{ trigger.payload_json[\"before\"][\"entered_zones\"] }}"
camera: "{{ trigger.payload_json[\"after\"][\"camera\"] }}"
id: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
label: "{{ trigger.payload_json[\"after\"][\"label\"] }}"
score: "{{ trigger.payload_json[\"after\"][\"score\"] }}"
time_clip_start: "{{ trigger.payload_json[\"after\"][\"start_time\"] - 10.0 }}"
detect_time: "{{trigger.payload_json[\"after\"][\"start_time\"]|int}}"
trigger: mqtt
payload: Westwall
conditions:
- condition: or
conditions:
- condition: template
value_template: "{{ trigger.payload_json['type'] == 'new' }}"
- condition: template
value_template: "{{ before_zones | length == 0 }}"
enabled: true
- alias: Object is on West side
condition: template
value_template: "{{ [\"westwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
enabled: true
actions:
- choose:
- conditions:
- condition: trigger
id: frigate-event
sequence:
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >-
{{ label }} was detected on {{ camera | replace("_", " ") |
title }} camera
message: >-
"{{ label }} detected in the {{ after_zones[0] | replace("_", "
") | title }} zone"
notifTag: "{{ id }}"
notifIcon: mdi:alarm-light
group: frigate-notification-{{ camera }}
channel: alarm
importance: max
priority: critical
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: ""
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
- repeat:
sequence:
- wait_for_trigger:
- topic: homeassistant/events
payload: "{{ trigger.payload_json[\"after\"][\"id\"] }}"
value_template: "{{ value_json[\"after\"][\"id\"] }}"
trigger: mqtt
continue_on_timeout: false
timeout: "00:02:00"
- condition: template
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
- action: script.person_detect_actions
data:
send_to_sm_n986b: "true"
send_to_nova_4k: "false"
id: "{{ id }}"
title: >
{% if (wait.trigger.payload_json["after"]["sub_label"] !=
None) -%} {{
(wait.trigger.payload_json["after"]["sub_label"]) | title
}} {%- else -%} {{ label | replace("_", " ") | title }}
{%- endif %} was detected in the {{ after_zones[0] |
replace("_", " ") | title }} zone
message: >-
Detected with {{ int(score | round(2) * 100) }}%
confidence
notifTag: "{{ id }}"
notifIcon: mdi:cctv
group: >
frigate-notification-{{
trigger.payload_json["after"]["camera"] }}
channel: alarm
priority: high
importance: default
image: /api/frigate/notifications/{{ id }}/snapshot.jpg
video: /api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4
base_url: https://home-assistant.sthome.org
when: "{{ detect_time }}"
camera: "{{ camera }}"
until:
- condition: template
value_template: "{{ wait.trigger.payload_json[\"type\"] == \"end\" }}"
default: []
mode: parallel
max: 10

View File

@ -0,0 +1,184 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace.dashboard_sthome",
"data": {
"config": {
"views": [
{
"path": "default_view",
"title": "Home",
"cards": [
{
"type": "weather-forecast",
"entity": "weather.forecast_home",
"show_forecast": false
},
{
"type": "entity-filter",
"entities": [
"device_tracker.sm_n986b"
],
"state_filter": [
"home"
],
"card": {
"type": "glance",
"title": "People that are home"
}
},
{
"type": "media-control",
"entity": "media_player.nova4k"
},
{
"type": "media-control",
"entity": "media_player.smart_tv"
},
{
"type": "media-control",
"entity": "media_player.xiaomi_tv_box_2"
},
{
"type": "entities",
"entities": [
"switch.sthome_ut1_alarm_zone_4",
"switch.sthome_ut1_floodlights_backyard",
"switch.sthome_ut1_relay_2",
"switch.sthome_ut1_relay_3",
"switch.sthome_ut4_relay_5",
"switch.sthome_ut4_relay_6",
"binary_sensor.sthome_ut1_floodlights_test_mode"
],
"title": "House"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [],
"title": "Backyard Z1"
},
{
"type": "picture-entity",
"entity": "camera.backyard"
},
{
"type": "picture",
"image_entity": "image.backyard_person"
}
]
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [],
"title": "Driveway Z1"
},
{
"type": "picture-entity",
"entity": "camera.driveway"
},
{
"type": "picture",
"image_entity": "image.driveway_person"
}
]
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": []
},
{
"type": "picture-entity",
"entity": "camera.eastwall"
},
{
"type": "picture",
"image_entity": "image.eastwall_person"
}
]
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [],
"title": "Patio Z1"
},
{
"type": "picture-entity",
"entity": "camera.patio"
},
{
"type": "picture",
"image_entity": "image.patio_person"
}
]
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [],
"title": "Westwall Z1"
},
{
"type": "picture-entity",
"entity": "camera.westwall"
},
{
"type": "picture",
"image_entity": "image.westwall_person"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "counter.backyard_person_alarm_counter"
},
{
"entity": "counter.driveway_person_alarm_counter"
},
{
"entity": "counter.east_wall_person_alarm_counter"
},
{
"entity": "counter.patio_person_alarm_counter"
},
{
"entity": "counter.west_wall_person_alarm_counter"
},
{
"entity": "counter.sm_n986b_notification_counter"
}
],
"title": "Counters"
}
],
"type": "masonry"
}
]
}
}
}

View File

@ -0,0 +1,892 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace.dashboard_test",
"data": {
"config": {
"views": [
{
"path": "default_view",
"title": "Home",
"cards": [
{
"type": "media-control",
"entity": "media_player.nova4k"
},
{
"type": "entities",
"entities": [
"switch.sthome_ut1_alarm_zone_4",
"switch.sthome_ut1_floodlights_backyard",
"switch.sthome_ut1_relay_2",
"switch.sthome_ut1_relay_3",
"switch.sthome_ut4_relay_5",
"switch.sthome_ut4_relay_6",
"binary_sensor.sthome_ut1_floodlights_test_mode"
],
"title": "House"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
"remote.xiaomi_tv_box"
],
"title": "Living Room"
},
{
"type": "media-control",
"entity": "media_player.smart_tv"
},
{
"type": "media-control",
"entity": "media_player.xiaomi_tv_box_2"
}
]
},
{
"type": "entities",
"entities": [
"person.chris"
]
},
{
"type": "entities",
"entities": [
"counter.backyard_person_alarm_counter",
"counter.car_counter",
"counter.driveway_person_alarm_counter",
"counter.east_wall_person_alarm_counter",
"counter.patio_person_alarm_counter",
"counter.sm_n986b_notification_counter",
"counter.west_wall_person_alarm_counter"
],
"title": "Helpers"
},
{
"type": "media-control",
"entity": "media_player.xiaomi_tv_box"
},
{
"type": "entities",
"entities": [
"sensor.sm_n986b_battery_health"
],
"title": "Sensor"
},
{
"type": "weather-forecast",
"entity": "weather.forecast_home",
"show_forecast": false
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "sensor.backyard_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.backyard_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.backyard_all_occupancy",
"name": "All occupancy"
},
{
"entity": "binary_sensor.backyard_motion",
"name": "Motion"
},
{
"entity": "sensor.backyard_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.backyard_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.backyard_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Backyard"
},
{
"type": "picture-entity",
"entity": "camera.backyard"
},
{
"type": "picture",
"image_entity": "image.backyard_person"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.backyard_z1_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.backyard_z1_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.backyard_z1_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.backyard_z1_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.backyard_z1_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.backyard_z1_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Backyard Z1"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "sensor.driveway_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.driveway_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.driveway_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.driveway_bicycle_active_count",
"name": "Bicycle Active Count"
},
{
"entity": "sensor.driveway_bicycle_count",
"name": "Bicycle count"
},
{
"entity": "binary_sensor.driveway_bicycle_occupancy",
"name": "Bicycle occupancy"
},
{
"entity": "sensor.driveway_bus_active_count",
"name": "Bus Active Count"
},
{
"entity": "sensor.driveway_bus_count",
"name": "Bus count"
},
{
"entity": "binary_sensor.driveway_bus_occupancy",
"name": "Bus occupancy"
},
{
"entity": "sensor.driveway_car_active_count",
"name": "Car Active Count"
},
{
"entity": "sensor.driveway_car_count",
"name": "Car count"
},
{
"entity": "binary_sensor.driveway_car_occupancy",
"name": "Car occupancy"
},
{
"entity": "binary_sensor.driveway_motion",
"name": "Motion"
},
{
"entity": "sensor.driveway_motorcycle_active_count",
"name": "Motorcycle Active Count"
},
{
"entity": "sensor.driveway_motorcycle_count",
"name": "Motorcycle count"
},
{
"entity": "binary_sensor.driveway_motorcycle_occupancy",
"name": "Motorcycle occupancy"
},
{
"entity": "sensor.driveway_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.driveway_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.driveway_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Driveway"
},
{
"type": "picture-entity",
"entity": "camera.driveway"
},
{
"type": "picture",
"image_entity": "image.driveway_person"
},
{
"type": "picture",
"image_entity": "image.driveway_car"
},
{
"type": "picture",
"image_entity": "image.driveway_motorcycle"
},
{
"type": "picture",
"image_entity": "image.driveway_bicycle"
},
{
"type": "picture",
"image_entity": "image.driveway_bus"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.driveway_paving_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.driveway_paving_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.driveway_paving_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.driveway_paving_bicycle_active_count",
"name": "Bicycle Active Count"
},
{
"entity": "sensor.driveway_paving_bicycle_count",
"name": "Bicycle count"
},
{
"entity": "binary_sensor.driveway_paving_bicycle_occupancy",
"name": "Bicycle occupancy"
},
{
"entity": "sensor.driveway_paving_bus_active_count",
"name": "Bus Active Count"
},
{
"entity": "sensor.driveway_paving_bus_count",
"name": "Bus count"
},
{
"entity": "binary_sensor.driveway_paving_bus_occupancy",
"name": "Bus occupancy"
},
{
"entity": "sensor.driveway_paving_car_active_count",
"name": "Car Active Count"
},
{
"entity": "sensor.driveway_paving_car_count",
"name": "Car count"
},
{
"entity": "binary_sensor.driveway_paving_car_occupancy",
"name": "Car occupancy"
},
{
"entity": "sensor.driveway_paving_motorcycle_active_count",
"name": "Motorcycle Active Count"
},
{
"entity": "sensor.driveway_paving_motorcycle_count",
"name": "Motorcycle count"
},
{
"entity": "binary_sensor.driveway_paving_motorcycle_occupancy",
"name": "Motorcycle occupancy"
},
{
"entity": "sensor.driveway_paving_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.driveway_paving_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.driveway_paving_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Driveway Paving"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.driveway_z1_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.driveway_z1_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.driveway_z1_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.driveway_z1_bicycle_active_count",
"name": "Bicycle Active Count"
},
{
"entity": "sensor.driveway_z1_bicycle_count",
"name": "Bicycle count"
},
{
"entity": "binary_sensor.driveway_z1_bicycle_occupancy",
"name": "Bicycle occupancy"
},
{
"entity": "sensor.driveway_z1_bus_active_count",
"name": "Bus Active Count"
},
{
"entity": "sensor.driveway_z1_bus_count",
"name": "Bus count"
},
{
"entity": "binary_sensor.driveway_z1_bus_occupancy",
"name": "Bus occupancy"
},
{
"entity": "sensor.driveway_z1_car_active_count",
"name": "Car Active Count"
},
{
"entity": "sensor.driveway_z1_car_count",
"name": "Car count"
},
{
"entity": "binary_sensor.driveway_z1_car_occupancy",
"name": "Car occupancy"
},
{
"entity": "sensor.driveway_z1_motorcycle_active_count",
"name": "Motorcycle Active Count"
},
{
"entity": "sensor.driveway_z1_motorcycle_count",
"name": "Motorcycle count"
},
{
"entity": "binary_sensor.driveway_z1_motorcycle_occupancy",
"name": "Motorcycle occupancy"
},
{
"entity": "sensor.driveway_z1_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.driveway_z1_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.driveway_z1_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Driveway Z1"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.driveway_zall_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.driveway_zall_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.driveway_zall_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.driveway_zall_bicycle_active_count",
"name": "Bicycle Active Count"
},
{
"entity": "sensor.driveway_zall_bicycle_count",
"name": "Bicycle count"
},
{
"entity": "binary_sensor.driveway_zall_bicycle_occupancy",
"name": "Bicycle occupancy"
},
{
"entity": "sensor.driveway_zall_bus_active_count",
"name": "Bus Active Count"
},
{
"entity": "sensor.driveway_zall_bus_count",
"name": "Bus count"
},
{
"entity": "binary_sensor.driveway_zall_bus_occupancy",
"name": "Bus occupancy"
},
{
"entity": "sensor.driveway_zall_car_active_count",
"name": "Car Active Count"
},
{
"entity": "sensor.driveway_zall_car_count",
"name": "Car count"
},
{
"entity": "binary_sensor.driveway_zall_car_occupancy",
"name": "Car occupancy"
},
{
"entity": "sensor.driveway_zall_motorcycle_active_count",
"name": "Motorcycle Active Count"
},
{
"entity": "sensor.driveway_zall_motorcycle_count",
"name": "Motorcycle count"
},
{
"entity": "binary_sensor.driveway_zall_motorcycle_occupancy",
"name": "Motorcycle occupancy"
},
{
"entity": "sensor.driveway_zall_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.driveway_zall_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.driveway_zall_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Driveway Zall"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "sensor.eastwall_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.eastwall_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.eastwall_all_occupancy",
"name": "All occupancy"
},
{
"entity": "binary_sensor.eastwall_motion",
"name": "Motion"
},
{
"entity": "sensor.eastwall_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.eastwall_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.eastwall_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Eastwall"
},
{
"type": "picture-entity",
"entity": "camera.eastwall"
},
{
"type": "picture",
"image_entity": "image.eastwall_person"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.eastwall_z1_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.eastwall_z1_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.eastwall_z1_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.eastwall_z1_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.eastwall_z1_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.eastwall_z1_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Eastwall Z1"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.front_stoep_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.front_stoep_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.front_stoep_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.front_stoep_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.front_stoep_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.front_stoep_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Front Stoep"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.neighbour_flat_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.neighbour_flat_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.neighbour_flat_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.neighbour_flat_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.neighbour_flat_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.neighbour_flat_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Neighbour (Flat)"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
"remote.nova"
],
"title": "NOVA"
},
{
"type": "media-control",
"entity": "media_player.nova"
}
]
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "sensor.patio_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.patio_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.patio_all_occupancy",
"name": "All occupancy"
},
{
"entity": "binary_sensor.patio_motion",
"name": "Motion"
},
{
"entity": "sensor.patio_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.patio_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.patio_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Patio"
},
{
"type": "picture-entity",
"entity": "camera.patio"
},
{
"type": "picture",
"image_entity": "image.patio_person"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.patio_gate_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.patio_gate_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.patio_gate_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.patio_gate_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.patio_gate_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.patio_gate_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Patio Gate"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.patio_z1_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.patio_z1_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.patio_z1_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.patio_z1_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.patio_z1_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.patio_z1_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Patio Z1"
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.pool_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.pool_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.pool_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.pool_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.pool_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.pool_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Pool"
},
{
"type": "grid",
"square": false,
"columns": 1,
"cards": [
{
"type": "entities",
"entities": [
{
"entity": "sensor.westwall_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.westwall_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.westwall_all_occupancy",
"name": "All occupancy"
},
{
"entity": "binary_sensor.westwall_motion",
"name": "Motion"
},
{
"entity": "sensor.westwall_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.westwall_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.westwall_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Westwall"
},
{
"type": "picture-entity",
"entity": "camera.westwall"
},
{
"type": "picture",
"image_entity": "image.westwall_person"
}
]
},
{
"type": "entities",
"entities": [
{
"entity": "sensor.westwall_z1_all_active_count",
"name": "All Active Count"
},
{
"entity": "sensor.westwall_z1_all_count",
"name": "All count"
},
{
"entity": "binary_sensor.westwall_z1_all_occupancy",
"name": "All occupancy"
},
{
"entity": "sensor.westwall_z1_person_active_count",
"name": "Person Active Count"
},
{
"entity": "sensor.westwall_z1_person_count",
"name": "Person count"
},
{
"entity": "binary_sensor.westwall_z1_person_occupancy",
"name": "Person occupancy"
}
],
"title": "Westwall Z1"
}
]
}
]
}
}
}

View File

@ -0,0 +1,14 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace",
"data": {
"config": {
"strategy": {
"type": "original-states",
"hide_entities_without_area": false,
"hide_energy": false
}
}
}
}

View File

@ -0,0 +1,12 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace.map",
"data": {
"config": {
"strategy": {
"type": "map"
}
}
}
}

View File

@ -0,0 +1,35 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace_dashboards",
"data": {
"items": [
{
"id": "map",
"icon": "mdi:map",
"title": "Map",
"url_path": "map",
"require_admin": false,
"show_in_sidebar": true,
"mode": "storage"
},
{
"id": "dashboard_sthome",
"show_in_sidebar": true,
"icon": "mdi:home",
"title": "sthome",
"require_admin": false,
"mode": "storage",
"url_path": "dashboard-sthome"
},
{
"id": "dashboard_test",
"show_in_sidebar": true,
"title": "test",
"require_admin": false,
"mode": "storage",
"url_path": "dashboard-test"
}
]
}
}

View File

@ -0,0 +1,19 @@
{
"version": 1,
"minor_version": 1,
"key": "lovelace_resources",
"data": {
"items": [
{
"id": "e2e76867d1614c9ebdc654bb582b10f7",
"url": "/hacsfiles/android-tv-card/universal-remote-card.min.js?hacstag=6543936464312",
"type": "module"
},
{
"id": "4748223247fe4f0d8b35a776538e9204",
"url": "/hacsfiles/universal-remote-card/universal-remote-card.min.js?hacstag=654393646442",
"type": "module"
}
]
}
}

View File

@ -0,0 +1,105 @@
path: default_view
title: Home
cards:
- type: weather-forecast
entity: weather.forecast_home
show_forecast: false
- type: entities
entities:
- person.chris
- sensor.sm_n986b_battery_health
- type: grid
square: false
columns: 1
cards:
- type: entities
entities:
- remote.nova
title: Bedroom
- type: media-control
entity: media_player.nova
- type: grid
square: false
columns: 1
cards:
- type: entities
entities:
- remote.xiaomi_tv_box
title: Living Room
- type: media-control
entity: media_player.smart_tv
- type: media-control
entity: media_player.xiaomi_tv_box_2
- type: entities
entities:
- switch.sthome_ut1_alarm_zone_4
- switch.sthome_ut1_floodlights_backyard
- switch.sthome_ut1_relay_2
- switch.sthome_ut1_relay_3
- switch.sthome_ut4_relay_5
- switch.sthome_ut4_relay_6
- binary_sensor.sthome_ut1_floodlights_test_mode
title: House
- type: grid
square: false
columns: 1
cards:
- type: entities
entities: []
title: Backyard Z1
- type: picture-entity
entity: camera.backyard
- type: picture
image_entity: image.backyard_person
- type: grid
square: false
columns: 1
cards:
- type: entities
entities: []
title: Driveway Z1
- type: picture-entity
entity: camera.driveway
- type: picture
image_entity: image.driveway_person
- type: grid
square: false
columns: 1
cards:
- type: entities
entities: []
- type: picture-entity
entity: camera.eastwall
- type: picture
image_entity: image.eastwall_person
- type: grid
square: false
columns: 1
cards:
- type: entities
entities: []
title: Patio Z1
- type: picture-entity
entity: camera.patio
- type: picture
image_entity: image.patio_person
- type: grid
square: false
columns: 1
cards:
- type: entities
entities: []
title: Westwall Z1
- type: picture-entity
entity: camera.westwall
- type: picture
image_entity: image.westwall_person
- type: entities
entities:
- entity: counter.backyard_person_alarm_counter
- entity: counter.driveway_person_alarm_counter
- entity: counter.east_wall_person_alarm_counter
- entity: counter.patio_person_alarm_counter
- entity: counter.west_wall_person_alarm_counter
- entity: counter.sm_n986b_notification_counter
title: Counters

View File

@ -11,3 +11,6 @@ SECRETSDIR=${STACKSDIR}/secrets
DOMAINNAME=sthome.org
SERVICE_PORT=8096
JELLYFIN_LOCAL=10.0.2.252 # for mDNS

View File

@ -4,7 +4,9 @@ name: jellyfin
networks:
traefik-net:
external: true
macvlan1:
external: true
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
@ -12,7 +14,9 @@ services:
env_file: .jellyfin.env
restart: unless-stopped
networks:
- traefik-net
traefik-net:
# macvlan1:
# ipv4_address: ${JELLYFIN_LOCAL}
# this deploy section requires the installation of the nvidia-container-toolkit; comment out if the toolkit is not installed
deploy:
resources:
@ -27,6 +31,8 @@ services:
- "${DATADIR}/config:/config"
- "${DATADIR}/transcodes:/config/data/transcodes"
- "${MEDIADIR}:/data"
# depends_on:
# - avahi-tools
labels:
- traefik.enable=true
- traefik.docker.network=traefik-net
@ -45,3 +51,10 @@ services:
- "traefik.http.routers.${APPLICATION_NAME}-secure-rtr.tls.options=tls-options@file"
- "traefik.http.routers.${APPLICATION_NAME}-secure-rtr.tls.certresolver=solver-dns"
- "traefik.http.routers.${APPLICATION_NAME}-secure-rtr.service=${APPLICATION_NAME}-svc"
# avahi-tools:
# volumes:
# - /run/dbus:/var/run/dbus
# - /run/avahi-daemon:/var/run/avahi-daemon
# image: ahasbini/avahi-tools:latest
# #command: avahi-publish -a jellyfin.local ${JELLYFIN_LOCAL}
# command: avahi-publish-service -s jellyfin.local _http._tcp 8096 "Jellyfin" "Jellyfin Media Server"