docker: tilføj healthcheck til HA + autoheal-container mod frosne hæng
This commit is contained in:
@@ -5,5 +5,5 @@ panel: true
|
||||
|
||||
cards:
|
||||
- type: iframe
|
||||
url: /local/snapshots/indkorsel_loader.html?v=20260620194231
|
||||
url: /local/snapshots/indkorsel_loader.html?v=20260625061240
|
||||
aspect_ratio: 100%
|
||||
|
||||
@@ -11,3 +11,24 @@ services:
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Europe/Copenhagen
|
||||
labels:
|
||||
- "autoheal=true"
|
||||
healthcheck:
|
||||
# Tjekker at HA's web-API faktisk svarer (ikke kun at processen kører)
|
||||
test: ["CMD", "curl", "-fs", "http://localhost:8123/manifest.json"]
|
||||
interval: 30s # tjek hvert 30. sekund
|
||||
timeout: 10s # svar skal komme inden 10 sek
|
||||
retries: 3 # 3 fejl i træk => unhealthy
|
||||
start_period: 120s # giv HA 2 min til at boote inden tjek tæller
|
||||
|
||||
autoheal:
|
||||
container_name: autoheal
|
||||
image: willfarrell/autoheal:latest
|
||||
restart: always
|
||||
environment:
|
||||
- AUTOHEAL_CONTAINER_LABEL=autoheal # genstart kun containere med label autoheal=true
|
||||
- AUTOHEAL_INTERVAL=15 # tjek health-status hvert 15. sekund
|
||||
- AUTOHEAL_START_PERIOD=300 # vent 5 min efter egen opstart inden overvågning
|
||||
- TZ=Europe/Copenhagen
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
@@ -110,3 +110,51 @@
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.vacation_mode
|
||||
|
||||
- alias: "Varme - Påmindelse: Luk håndklæde-varmer (sommer)"
|
||||
id: varme_paamindelse_haandklaedevarmer_sommer
|
||||
description: >
|
||||
Sender en påmindelse 1. juni om at lukke den manuelle hane til
|
||||
håndklæde-varmeren i badeværelset, så den ikke trækker fjernvarme
|
||||
hele sommeren. Hanen kan ikke styres af HA, så det er en manuel handling.
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "09:00:00"
|
||||
condition:
|
||||
- condition: template
|
||||
value_template: "{{ now().month == 6 and now().day == 1 }}"
|
||||
action:
|
||||
- service: notify.mobile_app_claus_iphone_15pro
|
||||
data:
|
||||
title: "Sommer: Luk håndklæde-varmeren"
|
||||
message: >
|
||||
Husk at lukke den manuelle hane til håndklæde-varmeren i badeværelset,
|
||||
så den ikke trækker fjernvarme hele sommeren.
|
||||
data:
|
||||
push:
|
||||
interruption-level: time-sensitive
|
||||
tag: haandklaedevarmer_sommer
|
||||
|
||||
- alias: "Varme - Påmindelse: Åbn håndklæde-varmer (efterår)"
|
||||
id: varme_paamindelse_haandklaedevarmer_efteraar
|
||||
description: >
|
||||
Sender en påmindelse 1. oktober om at åbne den manuelle hane til
|
||||
håndklæde-varmeren i badeværelset igen før fyringssæsonen.
|
||||
Hanen kan ikke styres af HA, så det er en manuel handling.
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "09:00:00"
|
||||
condition:
|
||||
- condition: template
|
||||
value_template: "{{ now().month == 10 and now().day == 1 }}"
|
||||
action:
|
||||
- service: notify.mobile_app_claus_iphone_15pro
|
||||
data:
|
||||
title: "Efterår: Åbn håndklæde-varmeren"
|
||||
message: >
|
||||
Husk at åbne den manuelle hane til håndklæde-varmeren i badeværelset
|
||||
igen, så den er klar til fyringssæsonen.
|
||||
data:
|
||||
push:
|
||||
interruption-level: time-sensitive
|
||||
tag: haandklaedevarmer_efteraar
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
doorbell:
|
||||
alias: Dørklokke
|
||||
sequence:
|
||||
# Gem Denon-receiverens tilstand, saa den kan gendannes efter dingdong
|
||||
- variables:
|
||||
denon_state: "{{ states('media_player.denon_avr_x2300w') }}"
|
||||
denon_source: "{{ state_attr('media_player.denon_avr_x2300w', 'source') }}"
|
||||
denon_volume: "{{ state_attr('media_player.denon_avr_x2300w', 'volume_level') }}"
|
||||
- parallel:
|
||||
- sequence:
|
||||
- variables:
|
||||
@@ -103,7 +108,20 @@ doorbell:
|
||||
volume_level: "{{ volumennat }}"
|
||||
target:
|
||||
entity_id: media_player.andreas
|
||||
- service: media_player.select_source
|
||||
data:
|
||||
entity_id: media_player.denon_avr_x2300w
|
||||
source: TV Audio
|
||||
# Gendan Denon-receiveren til praecis den kilde og volumen den stod paa foer ringningen
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: template
|
||||
value_template: "{{ denon_state not in ['off', 'standby', 'unavailable', 'unknown', 'none'] }}"
|
||||
sequence:
|
||||
- service: media_player.select_source
|
||||
data:
|
||||
entity_id: media_player.denon_avr_x2300w
|
||||
source: "{{ denon_source }}"
|
||||
- delay: "00:00:01"
|
||||
- condition: template
|
||||
value_template: "{{ denon_volume not in [none, 'None', '', 'unknown', 'unavailable'] }}"
|
||||
- service: media_player.volume_set
|
||||
data:
|
||||
entity_id: media_player.denon_avr_x2300w
|
||||
volume_level: "{{ denon_volume | float }}"
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"count": 8, "items": [{"date": "2026-06-20", "recipe": {"name": "Bagte s\u00f8de kartofler med fyld", "slug": "bagte-sode-kartofler-med-fyld"}}, {"date": "2026-06-20", "recipe": {"name": "Engelsk b\u00f8f ", "slug": ""}}, {"date": "2026-06-26", "recipe": {"name": "M\u00f8rbradb\u00f8ffer med bl\u00f8de l\u00f8g og fl\u00f8desauce", "slug": "morbradboffer-med-blode-log-og-flodesauce"}}, {"date": "2026-06-25", "recipe": {"name": "Macaroni and cheese", "slug": "macaroni-and-cheese"}}, {"date": "2026-06-24", "recipe": {"name": "Rester fra mandag (Tortellini i fad)", "slug": ""}}, {"date": "2026-06-23", "recipe": {"name": "Rester fra s\u00f8ndag (Kylling med cornflakes)", "slug": ""}}, {"date": "2026-06-22", "recipe": {"name": "Tortellini i fad", "slug": "tortellini-i-fad"}}, {"date": "2026-06-21", "recipe": {"name": "Kylling med cornflakes", "slug": "kylling-med-cornflakes"}}]}
|
||||
{"count": 7, "items": [{"date": "2026-07-01", "recipe": {"name": "Spaghetti i tomatsauce med k\u00f8dboller", "slug": "spaghetti-i-tomatsauce-med-kodboller"}}, {"date": "2026-06-30", "recipe": {"name": "Paprikagryde \u2013 en klassisk m\u00f8rbradgryde", "slug": "paprikagryde-en-klassisk-morbradgryde"}}, {"date": "2026-06-29", "recipe": {"name": "Spaghetti i tomatsauce med k\u00f8dboller", "slug": "spaghetti-i-tomatsauce-med-kodboller"}}, {"date": "2026-06-28", "recipe": {"name": "Paprikagryde \u2013 en klassisk m\u00f8rbradgryde", "slug": "paprikagryde-en-klassisk-morbradgryde"}}, {"date": "2026-06-27", "recipe": {"name": "Laks p\u00e5 grill med citron og krydderurter", "slug": "laks-pa-grill-med-citron-og-krydderurter"}}, {"date": "2026-06-26", "recipe": {"name": "Citrongr\u00e6s marineret m\u00f8rbrad med nudler", "slug": "citrongraes-marineret-morbrad-med-nudler"}}, {"date": "2026-06-25", "recipe": {"name": "Macaroni and cheese", "slug": "macaroni-and-cheese"}}]}
|
||||
Reference in New Issue
Block a user