Migrate docker monitored group to switch group integration

pull/1639/head
Carlo Costanzo 10 hours ago
parent 8a973ded3e
commit 9155d0e7ec

@ -194,11 +194,10 @@
card_param: cards card_param: cards
filter: filter:
include: include:
- group: group.docker_monitored_containers - group: switch.docker_monitored_containers
options: options:
type: custom:button-card type: custom:button-card
template: bearstone_infra_container_row template: bearstone_infra_container_row
icon: mdi:docker icon: mdi:docker
sort: sort:
method: name method: name

@ -449,7 +449,7 @@
card_param: cards card_param: cards
filter: filter:
include: include:
- group: group.docker_monitored_containers - group: switch.docker_monitored_containers
options: options:
type: custom:button-card type: custom:button-card
template: bearstone_infra_container_row template: bearstone_infra_container_row
@ -636,4 +636,3 @@
name: Download name: Download
- entity: sensor.speedtest_upload - entity: sensor.speedtest_upload
name: Upload name: Upload

@ -614,7 +614,7 @@ bearstone_infra_container_row:
} }
const switchEntity = key ? `switch.${key}_container` : ''; const switchEntity = key ? `switch.${key}_container` : '';
const switchEntityAlt = key ? `switch.${key}_container_2` : ''; const switchEntityAlt = key ? `switch.${key}_container_2` : '';
const monitored = states['group.docker_monitored_containers']?.attributes?.entity_id || []; const monitored = states['switch.docker_monitored_containers']?.attributes?.entity_id || [];
const restartCandidates = key ? [ const restartCandidates = key ? [
`button.${key}_restart_container`, `button.${key}_restart_container`,
`button.${key}_restart_container_2`, `button.${key}_restart_container_2`,

@ -4,9 +4,9 @@
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# ------------------------------------------------------------------- # -------------------------------------------------------------------
# Docker Infrastructure - Host patching and container alerts # Docker Infrastructure - Host patching and container alerts
# Related Issue: 1632, 1584
# APT webhook results (docker_10/14/17/69) and container down repairs. # APT webhook results (docker_10/14/17/69) and container down repairs.
# ------------------------------------------------------------------- # -------------------------------------------------------------------
# Related Issue: 1584
# Notes: Hosts run weekly Wed 12:00 APT job and POST JSON to webhooks. # Notes: Hosts run weekly Wed 12:00 APT job and POST JSON to webhooks.
# Notes: Reboots are handled directly on each host by apt_weekly.sh. # Notes: Reboots are handled directly on each host by apt_weekly.sh.
# Notes: Reboot staggering: docker_14 first, docker_69 second, docker_10 third. # Notes: Reboot staggering: docker_14 first, docker_69 second, docker_10 third.
@ -66,9 +66,10 @@ input_text:
name: "docker_69 APT last result" name: "docker_69 APT last result"
max: 255 max: 255
group: switch:
docker_monitored_containers: - platform: group
name: Docker Monitored Containers name: Docker Monitored Containers
unique_id: docker_monitored_containers
entities: entities:
- switch.cloudflared_kch_container - switch.cloudflared_kch_container
- switch.cloudflared_wp_container - switch.cloudflared_wp_container
@ -206,14 +207,14 @@ template:
unique_id: docker_monitored_container_count unique_id: docker_monitored_container_count
icon: mdi:format-list-numbered icon: mdi:format-list-numbered
state: >- state: >-
{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | count }} {{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | count }}
- name: "Docker Monitored Unavailable Count" - name: "Docker Monitored Unavailable Count"
unique_id: docker_monitored_unavailable_count unique_id: docker_monitored_unavailable_count
icon: mdi:lan-disconnect icon: mdi:lan-disconnect
state: >- state: >-
{% set ns = namespace(keys=[], unavailable=0) %} {% set ns = namespace(keys=[], unavailable=0) %}
{% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) %} {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) %}
{% for switch_entity in monitored %} {% for switch_entity in monitored %}
{% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %}
{% if key not in ns.keys %} {% if key not in ns.keys %}
@ -257,7 +258,7 @@ template:
icon: mdi:docker icon: mdi:docker
state: >- state: >-
{% set ns = namespace(keys=[], down=[]) %} {% set ns = namespace(keys=[], down=[]) %}
{% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list %} {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list %}
{% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %} {% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %}
{% for switch_entity in monitored %} {% for switch_entity in monitored %}
{% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %}
@ -301,7 +302,7 @@ template:
attributes: attributes:
down_containers: >- down_containers: >-
{% set ns = namespace(keys=[], down=[]) %} {% set ns = namespace(keys=[], down=[]) %}
{% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list %} {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list %}
{% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %} {% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %}
{% for switch_entity in monitored %} {% for switch_entity in monitored %}
{% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %}
@ -437,7 +438,7 @@ script:
status_entity_alt: "binary_sensor.{{ container_key }}_status_2" status_entity_alt: "binary_sensor.{{ container_key }}_status_2"
state_entity: "sensor.{{ container_key }}_state" state_entity: "sensor.{{ container_key }}_state"
state_entity_alt: "sensor.{{ container_key }}_state_2" state_entity_alt: "sensor.{{ container_key }}_state_2"
monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) }}" monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) }}"
tracked_container: "{{ switch_entity in monitored_switches or switch_entity_alt in monitored_switches }}" tracked_container: "{{ switch_entity in monitored_switches or switch_entity_alt in monitored_switches }}"
effective_entity: >- effective_entity: >-
{% if expand(status_entity) | count > 0 %} {% if expand(status_entity) | count > 0 %}
@ -798,7 +799,7 @@ automation:
entity_id: "{{ trigger.event.data.entity_id | default('') }}" entity_id: "{{ trigger.event.data.entity_id | default('') }}"
old_state: "{{ (trigger.event.data.old_state.state if trigger.event.data.old_state is not none else '') | lower }}" old_state: "{{ (trigger.event.data.old_state.state if trigger.event.data.old_state is not none else '') | lower }}"
new_state: "{{ (trigger.event.data.new_state.state if trigger.event.data.new_state is not none else '') | lower }}" new_state: "{{ (trigger.event.data.new_state.state if trigger.event.data.new_state is not none else '') | lower }}"
monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list }}" monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list }}"
is_monitored_container_event: >- is_monitored_container_event: >-
{% set ent = entity_id %} {% set ent = entity_id %}
{% if ent.startswith('switch.') and (ent.endswith('_container') or ent.endswith('_container_2')) %} {% if ent.startswith('switch.') and (ent.endswith('_container') or ent.endswith('_container_2')) %}
@ -888,7 +889,7 @@ automation:
minutes: "/55" minutes: "/55"
action: action:
- variables: - variables:
monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list }}" monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list }}"
- repeat: - repeat:
for_each: "{{ monitored_switches }}" for_each: "{{ monitored_switches }}"
sequence: sequence:

Loading…
Cancel
Save

Powered by TurnKey Linux.