|
4 | 4 | # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig |
5 | 5 | # ------------------------------------------------------------------- |
6 | 6 | # Docker Infrastructure - Host patching and container alerts |
| 7 | +# Related Issue: 1632, 1584 |
7 | 8 | # APT webhook results (docker_10/14/17/69) and container down repairs. |
8 | 9 | # ------------------------------------------------------------------- |
9 | | -# Related Issue: 1584 |
10 | 10 | # Notes: Hosts run weekly Wed 12:00 APT job and POST JSON to webhooks. |
11 | 11 | # Notes: Reboots are handled directly on each host by apt_weekly.sh. |
12 | 12 | # Notes: Reboot staggering: docker_14 first, docker_69 second, docker_10 third. |
@@ -66,9 +66,10 @@ input_text: |
66 | 66 | name: "docker_69 APT last result" |
67 | 67 | max: 255 |
68 | 68 |
|
69 | | -group: |
70 | | - docker_monitored_containers: |
| 69 | +switch: |
| 70 | + - platform: group |
71 | 71 | name: Docker Monitored Containers |
| 72 | + unique_id: docker_monitored_containers |
72 | 73 | entities: |
73 | 74 | - switch.cloudflared_kch_container |
74 | 75 | - switch.cloudflared_wp_container |
@@ -206,14 +207,14 @@ template: |
206 | 207 | unique_id: docker_monitored_container_count |
207 | 208 | icon: mdi:format-list-numbered |
208 | 209 | state: >- |
209 | | - {{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | count }} |
| 210 | + {{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | count }} |
210 | 211 |
|
211 | 212 | - name: "Docker Monitored Unavailable Count" |
212 | 213 | unique_id: docker_monitored_unavailable_count |
213 | 214 | icon: mdi:lan-disconnect |
214 | 215 | state: >- |
215 | 216 | {% set ns = namespace(keys=[], unavailable=0) %} |
216 | | - {% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) %} |
| 217 | + {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) %} |
217 | 218 | {% for switch_entity in monitored %} |
218 | 219 | {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} |
219 | 220 | {% if key not in ns.keys %} |
@@ -257,7 +258,7 @@ template: |
257 | 258 | icon: mdi:docker |
258 | 259 | state: >- |
259 | 260 | {% set ns = namespace(keys=[], down=[]) %} |
260 | | - {% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list %} |
| 261 | + {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list %} |
261 | 262 | {% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %} |
262 | 263 | {% for switch_entity in monitored %} |
263 | 264 | {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} |
@@ -301,7 +302,7 @@ template: |
301 | 302 | attributes: |
302 | 303 | down_containers: >- |
303 | 304 | {% set ns = namespace(keys=[], down=[]) %} |
304 | | - {% set monitored = state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list %} |
| 305 | + {% set monitored = state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list %} |
305 | 306 | {% set telemetry_degraded = is_state('binary_sensor.docker_container_telemetry_degraded', 'on') %} |
306 | 307 | {% for switch_entity in monitored %} |
307 | 308 | {% set key = switch_entity | replace('switch.', '') | regex_replace('_container(?:_2)?$', '') %} |
@@ -437,7 +438,7 @@ script: |
437 | 438 | status_entity_alt: "binary_sensor.{{ container_key }}_status_2" |
438 | 439 | state_entity: "sensor.{{ container_key }}_state" |
439 | 440 | state_entity_alt: "sensor.{{ container_key }}_state_2" |
440 | | - monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) }}" |
| 441 | + monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) }}" |
441 | 442 | tracked_container: "{{ switch_entity in monitored_switches or switch_entity_alt in monitored_switches }}" |
442 | 443 | effective_entity: >- |
443 | 444 | {% if expand(status_entity) | count > 0 %} |
@@ -798,7 +799,7 @@ automation: |
798 | 799 | entity_id: "{{ trigger.event.data.entity_id | default('') }}" |
799 | 800 | old_state: "{{ (trigger.event.data.old_state.state if trigger.event.data.old_state is not none else '') | lower }}" |
800 | 801 | new_state: "{{ (trigger.event.data.new_state.state if trigger.event.data.new_state is not none else '') | lower }}" |
801 | | - monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list }}" |
| 802 | + monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list }}" |
802 | 803 | is_monitored_container_event: >- |
803 | 804 | {% set ent = entity_id %} |
804 | 805 | {% if ent.startswith('switch.') and (ent.endswith('_container') or ent.endswith('_container_2')) %} |
@@ -888,7 +889,7 @@ automation: |
888 | 889 | minutes: "/55" |
889 | 890 | action: |
890 | 891 | - variables: |
891 | | - monitored_switches: "{{ state_attr('group.docker_monitored_containers', 'entity_id') | default([], true) | list }}" |
| 892 | + monitored_switches: "{{ state_attr('switch.docker_monitored_containers', 'entity_id') | default([], true) | list }}" |
892 | 893 | - repeat: |
893 | 894 | for_each: "{{ monitored_switches }}" |
894 | 895 | sequence: |
|
0 commit comments