docker: tilføj healthcheck til HA + autoheal-container mod frosne hæng
This commit is contained in:
@@ -5,5 +5,5 @@ panel: true
|
|||||||
|
|
||||||
cards:
|
cards:
|
||||||
- type: iframe
|
- type: iframe
|
||||||
url: /local/snapshots/indkorsel_loader.html?v=20260620194231
|
url: /local/snapshots/indkorsel_loader.html?v=20260625061240
|
||||||
aspect_ratio: 100%
|
aspect_ratio: 100%
|
||||||
|
|||||||
@@ -11,3 +11,24 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Copenhagen
|
- 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
|
- service: input_boolean.turn_off
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.vacation_mode
|
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:
|
doorbell:
|
||||||
alias: Dørklokke
|
alias: Dørklokke
|
||||||
sequence:
|
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:
|
- parallel:
|
||||||
- sequence:
|
- sequence:
|
||||||
- variables:
|
- variables:
|
||||||
@@ -103,7 +108,20 @@ doorbell:
|
|||||||
volume_level: "{{ volumennat }}"
|
volume_level: "{{ volumennat }}"
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.andreas
|
entity_id: media_player.andreas
|
||||||
|
# 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
|
- service: media_player.select_source
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.denon_avr_x2300w
|
entity_id: media_player.denon_avr_x2300w
|
||||||
source: TV Audio
|
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